* { 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: 10px 20px; display: flex; align-items: center; } .logo { background-color: #05297a; color: #05297a; padding: 5px 10px; border-radius: 3px; font-weight: bold; margin-right: 15px; cursor: pointer; display: flex; align-items: center; } .logo img { height: 22px; margin-right: 8px; } .admin-text { font-family: 'Nunito', sans-serif; font-size: 16px; color: #f0d224; font-weight: 700; } .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: #05297a; color: white; } .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; } .comments-panel .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); } .comments-panel .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; } .comments-panel .creation-date { font-weight: bold; color: #05297a; } .comments-panel .modification-date { font-style: italic; font-size: 0.8em; color: #6c757d; } .comments-panel .comment-text { color: #333; line-height: 1.5; font-size: 14px; margin-top: 8px; white-space: pre-wrap; } @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; } .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; } 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; } .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 { padding: 20px; margin: 10px; } .sidebar { margin: 10px; padding: 20px; } .buttons-container { flex-wrap: nowrap; overflow-x: auto; } .btn { margin-right: 0; margin-bottom: 0; white-space: nowrap; flex-shrink: 0; } }