.disponibilidades-container { padding: 20px; background: #f5f7fa; min-height: 100vh; } .disponibilidades-title { font-size: 1.5rem; font-weight: bold; color: #2c3e50; margin-bottom: 20px; } .search-container { margin: 10px 0 25px 0; position: relative; background-color: white; padding: 15px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); border: 1px solid #e1e8ed; } .search-input-container { position: relative; } .search-input { border: 1px solid #dce1e6; border-radius: 6px; padding: 10px 40px 10px 12px; width: 100%; font-size: 14px; box-sizing: border-box; transition: border-color 0.2s; } .search-input:focus { outline: none; border-color: #3498db; box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.1); } .clear-search-btn { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; font-size: 18px; cursor: pointer; color: #7f8c8d; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: background-color 0.2s; } .clear-search-btn:hover { background-color: #f8f9fa; color: #e74c3c; } .suggestions-dropdown { border: 1px solid #e1e8ed; border-radius: 6px; background-color: white; position: absolute; z-index: 1000; width: calc(100% - 30px); max-height: 200px; overflow-y: auto; margin-top: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); left: 15px; right: 15px; } .suggestion-item { padding: 10px 12px; cursor: pointer; border-bottom: 1px solid #f8f9fa; transition: background-color 0.2s; font-size: 14px; color: #2c3e50; } .suggestion-item:hover { background-color: #f8f9fa; } .suggestion-item:last-child { border-bottom: none; } /* Collapsible Styles */ .doctor-group { background-color: white; border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); margin-bottom: 8px; overflow: hidden; border: 1px solid #e1e8ed; } .doctor-header { padding: 16px 20px; background-color: #f1f3f5; cursor: pointer; display: flex; justify-content: space-between; align-items: center; transition: background-color 0.2s; border-bottom: 1px solid #e1e8ed; } .doctor-header:hover { background-color: #e9ecef; } .doctor-name { font-size: 1.1rem; font-weight: 600; color: #2c3e50; margin: 0; } .doctor-hours { font-size: 0.9rem; font-weight: normal; color: #7f8c8d; margin-left: 8px; } .expand-icon { font-size: 1rem; color: #7f8c8d; transform: rotate(0deg); transition: transform 0.3s ease; } .expand-icon.expanded { transform: rotate(180deg); } .doctor-content { padding: 0; max-height: 0; overflow: hidden; transition: max-height 0.3s ease-out; } .doctor-group.expanded .doctor-content { max-height: 5000px; } /* Table Styles */ .table-container { overflow-x: auto; padding: 0 10px 10px 10px; } .disponibilidades-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; background-color: white; } .disponibilidades-table thead { background-color: #f8f9fa; } .disponibilidades-table thead th { padding: 6px 16px; text-align: left; font-weight: 600; color: #2c3e50; border-bottom: 1px solid #e1e8ed; font-size: 0.875rem; } .disponibilidades-table tbody tr { transition: background-color 0.2s; border-bottom: 1px solid #f1f3f5; } .disponibilidades-table tbody tr:last-child { border-bottom: none; } .disponibilidades-table tbody tr:hover { background-color: #f8f9fa; } .disponibilidades-table td { padding: 12px 16px; color: #495057; border-bottom: 1px solid #f1f3f5; } /* Status Badges */ .status-badge { padding: 4px 8px; border-radius: 12px; font-size: 0.75rem; font-weight: 600; color: white; display: inline-block; text-align: center; min-width: 80px; } .status-active { background-color: #27ae60; } @media (max-width: 576px) { .disponibilidades-container { padding: 12px; } .disponibilidades-title { font-size: 1.25rem; } .search-container { padding: 12px; } .doctor-header { padding: 12px; } .doctor-name { font-size: 1rem; } .doctor-hours { display: none; } .expand-icon { font-size: 0.9rem; } .table-container { padding: 0 6px 6px 6px; } .disponibilidades-table thead th { padding: 6px 8px; } .disponibilidades-table td { padding: 10px 8px; font-size: 0.8125rem; } .disponibilidades-table thead th:nth-child(4), .disponibilidades-table thead th:nth-child(5), .disponibilidades-table thead th:nth-child(7), .disponibilidades-table tbody td:nth-child(4), .disponibilidades-table tbody td:nth-child(5), .disponibilidades-table tbody td:nth-child(7) { display: none; } .disp-buttons-container { flex-direction: column; gap: 10px; } .disp-btn-primary, .disp-btn-danger { width: 100%; } .suggestions-dropdown { width: calc(100% - 30px); left: 15px; right: 15px; } } .status-inactive { background-color: #e74c3c; } .status-not-configured { background-color: #7f8c8d; } /* Buttons */ .edit-btn-container { padding: 8px 10px 0px 10px; background-color: #f8f9fa; } .disp-btn-edit { background-color: #ffe8a1; color: #2c3e50; border: 1px solid #f0d860; border-radius: 6px; padding: 8px 16px; cursor: pointer; font-weight: 600; font-size: 0.875rem; transition: all 0.2s; } .disp-btn-edit:hover { background-color: #ffcc00; border-color: #e6b800; } .disp-btn-delete { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; border-radius: 4px; padding: 6px 12px; cursor: pointer; font-weight: 500; font-size: 0.75rem; transition: all 0.2s; } .disp-btn-delete:hover { background-color: #f1b0b7; border-color: #e89ca6; } /* Edit Mode Styles */ .edit-container { background-color: white; border-radius: 8px; padding: 20px; margin-bottom: 20px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); border: 1px solid #e1e8ed; } .disp-buttons-container { display: flex; gap: 12px; margin-top: 20px; justify-content: flex-start; } .disp-btn-primary { padding: 10px 20px; font-size: 0.875rem; font-weight: 600; border-radius: 6px; background-color: #3498db; color: white; border: none; cursor: pointer; transition: background-color 0.2s; } .disp-btn-primary:hover { background-color: #2980b9; } .disp-btn-danger { padding: 10px 20px; font-size: 0.875rem; font-weight: 600; border-radius: 6px; background-color: #fa273c; color: white; border: none; cursor: pointer; transition: background-color 0.2s; } .disp-btn-danger:hover { background-color: #f41936; } /* Section Titles */ .section-title { font-size: 1.25rem; font-weight: 600; color: #2c3e50; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid #e1e8ed; } /* Loading and Empty States */ .loading-text, .no-results { text-align: center; padding: 40px 20px; color: #7f8c8d; font-size: 1rem; } .no-results { background-color: white; border-radius: 8px; margin: 20px 0; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } /* Responsive Design */ @media (max-width: 768px) { .disponibilidades-container { padding: 16px; } .disponibilidades-table { font-size: 0.75rem; } .disponibilidades-table th, .disponibilidades-table td { padding: 8px 12px; } .doctor-header { padding: 12px 16px; } .disp-buttons-container { flex-direction: column; } .disp-btn-primary, .disp-btn-danger { width: 100%; } }