* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Arial, sans-serif; background-color: #f5f5f5; min-height: 100vh; display: flex; flex-direction: column; } .main-wrapper { flex: 1; } .header { background-color: #05297a; color: white; padding: 0 20px; display: flex; align-items: center; height: 60px; position: relative; } .logo { display: flex; align-items: center; height: 100%; margin-right: 0; } .logo img { height: 24px; margin-right: 8px; vertical-align: middle; } .admin-text { font-family: 'Nunito', sans-serif; font-size: 16px; color: #f0d224; font-weight: 700; margin-left: 10px; } .loading-container { display: none; text-align: center; padding: 20px; margin: 20px 0; } .loading-container.active { display: block; } .spinner { border: 3px solid #f3f3f3; border-top: 3px solid #05297a; border-radius: 50%; width: 30px; height: 30px; animation: spin 1s linear infinite; margin: 0 auto 15px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading-text { color: #05297a; font-weight: bold; font-size: 14px; } .record-count { background-color: #e7f3ff; border: 1px solid #b3d9ff; border-radius: 5px; padding: 10px 15px; margin-bottom: 15px; color: #004085; font-weight: bold; font-size: 14px; display: none; } .record-count.active { display: block; } .page { display: none; } .page.active { display: block; } .menu-container { display: flex; gap: 10px; padding: 0 20px; margin-top: 20px; } .menu-item { background-color: #05297a; color: white; padding: 12px 20px; border-radius: 3px; cursor: pointer; text-align: center; font-size: 14px; flex: 1; transition: background-color 0.3s ease; } .menu-item:hover { background-color: #0052a3; } .main-content { padding: 40px; text-align: center; background-color: white; margin: 20px; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); } .main-content h1 { font-size: 24px; color: #333; margin-bottom: 20px; } .main-content p { color: #666; font-size: 14px; } .sidebar { background-color: white; margin: 20px; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); padding: 30px; } .sidebar h2 { font-size: 18px; color: #333; margin-bottom: 20px; } .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 8px; color: #333; font-weight: bold; font-size: 14px; } .form-input { width: 100%; padding: 10px 12px; border: 1px solid #ddd; border-radius: 3px; font-size: 14px; transition: border-color 0.3s ease; } .form-input:focus { outline: none; border-color: #05297a; box-shadow: 0 0 0 2px rgba(5, 41, 122, 0.1); } .form-input:disabled { background-color: #f5f5f5; cursor: not-allowed; opacity: 0.6; } .form-textarea { width: 100%; padding: 10px 12px; border: 1px solid #ddd; border-radius: 3px; font-size: 14px; font-family: Arial, sans-serif; resize: vertical; min-height: 80px; transition: border-color 0.3s ease; } .form-textarea:focus { outline: none; border-color: #05297a; box-shadow: 0 0 0 2px rgba(5, 41, 122, 0.1); } .btn { background-color: #05297a; color: white; padding: 12px 24px; border: none; border-radius: 3px; cursor: pointer; font-size: 14px; transition: background-color 0.3s ease; margin-right: 10px; } .btn:hover { background-color: #0052a3; } .btn:disabled { background-color: #6c757d; cursor: not-allowed; opacity: 0.6; } .btn.btn-secondary { background-color: #6c757d; } .btn.btn-secondary:hover { background-color: #5a6268; } .btn.btn-outline { background-color: transparent; color: #05297a; border: 1px solid #05297a; } .btn.btn-outline:hover { background-color: #0052a3; color: white; } .btn-warning { background-color: #ffc107; color: #212529; } .btn-warning:hover { background-color: #e0a800; } .btn-danger { background-color: #dc3545; } .btn-danger:hover { background-color: #c82333; } .buttons-container { display: flex; gap: 10px; flex-wrap: nowrap; margin-top: 10px; } .results { margin-top: 30px; display: none; } .results.active { display: block; } .results h3 { font-size: 16px; color: #333; margin-bottom: 15px; } .table { width: 100%; border-collapse: collapse; margin-top: 15px; } .table th, .table td { border: 1px solid #ddd; padding: 12px; text-align: left; font-size: 13px; } .table th { background-color: #f8f9fa; font-weight: bold; color: #333; } .table tbody tr:nth-child(even) { background-color: #f8f9fa; } .table tbody tr:hover { background-color: #e3f2fd; } .table tbody tr.selected { background-color: #d4edda; } .table tbody tr { cursor: pointer; } .comments-cell { text-align: center; cursor: pointer; font-weight: bold; } .comments-count { color: #05297a; background-color: #e7f3ff; border-radius: 15px; padding: 4px 8px; font-size: 12px; display: inline-block; min-width: 25px; } .no-comments { color: #666; font-style: italic; font-weight: normal; } .comments-panel { background-color: #f8f9fa; border: 1px solid #dee2e6; border-radius: 5px; margin-top: 10px; display: none; animation: slideDown 0.3s ease; padding: 15px; } .comments-panel.active { display: block; } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .comments-header { background-color: #e9ecef; padding: 12px 15px; border-bottom: 1px solid #dee2e6; display: flex; justify-content: space-between; align-items: center; } .comments-title { font-weight: bold; color: #333; font-size: 14px; } .comments-close { background: none; border: none; font-size: 18px; cursor: pointer; color: #666; padding: 0; width: 25px; height: 25px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background-color 0.2s ease; } .comments-close:hover { background-color: #dee2e6; } .comments-content { padding: 15px; max-height: 300px; overflow-y: auto; } .comment-item { background-color: white; border: 1px solid #e0e0e0; border-radius: 8px; padding: 12px; margin-bottom: 10px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .comment-meta { font-size: 0.85em; color: #666; margin-bottom: 5px; border-bottom: 1px dashed #eee; padding-bottom: 5px; display: flex; flex-wrap: wrap; gap: 10px; } .creation-date { font-weight: bold; color: #05297a; } .modification-date { font-style: italic; font-size: 0.8em; color: #6c757d; } .comment-text { color: #333; line-height: 1.5; font-size: 14px; margin-top: 8px; white-space: pre-wrap; } .comments-list { max-height: 200px; overflow-y: auto; margin-bottom: 15px; border: 1px solid #ddd; border-radius: 4px; padding: 10px; } .comment-item-container { position: relative; background-color: #f8f9fa; border-left: 3px solid #05297a; padding: 10px; margin-bottom: 10px; border-radius: 0 4px 4px 0; } .comment-item-container:last-child { margin-bottom: 0; } .comment-date { font-size: 12px; color: #6c757d; font-weight: bold; margin-bottom: 5px; } .comment-text { font-size: 14px; color: #333; } .delete-comment-btn { position: absolute; top: 5px; right: 5px; background-color: #dc3545; color: white; border: none; border-radius: 50%; width: 20px; height: 20px; font-size: 12px; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; } .delete-comment-btn:hover { background-color: #c82333; } .comment-item-container.editing { background-color: #e7f3ff; border-left-color: #f0d224; } .edit-comment-btn { position: absolute; top: 5px; right: 30px; background-color: #05297a; color: white; border: none; border-radius: 50%; width: 20px; height: 20px; font-size: 12px; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; } .edit-comment-btn:hover { background-color: #0052a3; } #editCommentText { min-height: 100px; } .modification-note { font-size: 0.8em; color: #6c757d; font-style: italic; display: block; margin-top: 5px; } .update-form { background-color: #f8f9fa; border: 1px solid #dee2e6; border-radius: 5px; padding: 20px; margin-top: 20px; display: none; } .update-form.active { display: block; } .update-form h4 { color: #05297a; margin-bottom: 15px; font-size: 16px; } .update-info { background-color: #e7f3ff; border: 1px solid #b3d9ff; border-radius: 4px; padding: 10px; margin-bottom: 15px; font-size: 13px; color: #004085; } .message { padding: 12px; border-radius: 4px; margin-top: 15px; font-weight: bold; } .message.success { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; } .message.error { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; } .empty-state { text-align: center; font-style: italic; color: #666; padding: 20px; } .record-item { background-color: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; padding: 12px; margin-bottom: 8px; display: flex; align-items: center; transition: background-color 0.2s ease; } .record-item:hover { background-color: #e9ecef; } .record-item input[type="checkbox"] { margin-right: 12px; transform: scale(1.2); } .record-info { flex: 1; } .record-id { font-weight: bold; color: #05297a; margin-right: 10px; } .record-details { font-size: 13px; color: #666; margin-top: 4px; } .delete-actions { border-top: 1px solid #dee2e6; padding-top: 20px; margin-top: 20px; } th { cursor: pointer; position: relative; padding-right: 20px !important; } th:hover { background-color: #e9ecef; } th::after { content: "↕"; position: absolute; right: 5px; top: 50%; transform: translateY(-50%); font-size: 12px; opacity: 0.5; } th.asc::after { content: "↑"; opacity: 1; } th.desc::after { content: "↓"; opacity: 1; } th.no-sort { cursor: default !important; padding-right: 12px !important; } th.no-sort:hover { background-color: inherit !important; } th.no-sort::after { content: none !important; } #updatePage th { cursor: default; padding-right: 12px !important; } #updatePage th:hover { background-color: inherit; } #updatePage th::after { content: none !important; } .footer { background-color: #004085; color: #bdc3c7; padding: 4px 20px; text-align: center; font-size: 11px; border-top: 1px solid #34495e; margin-top: auto; } .footer-credits { font-style: italic; color: #b6c1c2; font-size: 11px; } @media (max-width: 768px) { .menu-container { flex-direction: column; gap: 10px; } .main-content, .sidebar { padding: 20px; margin: 10px; } @media (max-width: 480px) { #loginPage .sidebar { margin: 15px; padding: 15px; } } } #loginPage .sidebar { max-width: 400px; margin: 50px auto; padding: 30px; background-color: white; border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } #loginPage .form-input { width: 100%; padding: 12px; margin-bottom: 15px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; } #loginPage .btn { width: 100%; padding: 12px; background-color: #05297a; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px; transition: background-color 0.3s; } #loginPage .btn:hover { background-color: #0052a3; } #loginPage h2 { text-align: center; color: #05297a; margin-bottom: 25px; } #loginPage .message { margin-top: 15px; padding: 10px; border-radius: 4px; text-align: center; } #loginPage .message.error { background-color: #f8d7da; color: #721c24; } #loginPage .message.success { background-color: #d4edda; color: #155724; } .nav-bar { background-color: transparent; padding: 0; display: none; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); gap: 10px; } .nav-btn { background-color: transparent; color: white; border: none; border-radius: 4px; padding: 8px 15px; cursor: pointer; font-size: 14px; transition: background-color 0.3s; height: 36px; display: flex; align-items: center; } .nav-btn:hover { background-color: rgba(255, 255, 255, 0.2); } .btn-logout { background-color: #dc3545; } .btn-logout:hover { background-color: #c82333; } .nav-btn:first-child { border: 1px solid rgba(255, 255, 255, 0.3); background-color: rgba(5, 41, 122, 0.2); } .nav-btn:first-child:hover { border-color: #f0d224; background-color: #0052a3; }