     /* Basic layout */
.container {
    margin: 0 auto;
    padding: 0 15px;
     }

     /* Simple table styling */
.table {
    width: 100%;
     border-collapse: collapse;
     margin-bottom: 1rem;
     }

.table th,
.table td {
    border: 1px solid #dee2e6;
    padding: 0.5rem;
     }

.table th {
     background-color: #f8f9fa;
     font-weight: bold;
     text-align: left;
     }

.table tbody tr:nth-child(even) {
     background-color: #f8f9fa;
     }

.table-responsive {
     overflow-x: auto;
     }

     /* Simple button styling */
.btn-delete {
     background-color: #dc3545;
    color: white;
    border: none;
    padding: 0.25rem 0.5rem;
     border-radius: 0.25rem;
    cursor: pointer;
     font-size: 0.875rem;
     }

.btn-delete:hover {
     background-color: #c82333;
     }

.btn-save {
     background-color: #0d6efd;
    color: white;
    border: none;
    padding: 0.375rem 0.75rem;
     border-radius: 0.25rem;
    cursor: pointer;
     }

.btn-save:hover {
     background-color: #0b5ed7;
     }

.btn-cancel {
     background-color: #6c757d;
    color: white;
    border: none;
    padding: 0.375rem 0.75rem;
     border-radius: 0.25rem;
    cursor: pointer;
     margin-right: 0.5rem;
     }

.btn-cancel:hover {
     background-color: #5c636a;
     }

.btn-close {
    background: none;
    border: none;
     font-size: 1.5rem;
    cursor: pointer;
    color: #000;
    opacity: 0.5;
     }

.btn-close:hover {
    opacity: 0.75;
     }

     :root {
     --multi-select-bg: #495057;
     --multi-select-hover-focus: #6c757d;
     --multi-select-text: #f8f9fa;
     --focus-outline-color: #4a9eff;
     --active-row-bg: #cce5ff; /* Medium blue background for active row - darker than previous #e6f3ff */
     }

     body {
     font-family:Arial, sans-serif;
     font-size: 1.0rem;
     }

     /* Style for the active row in the schedule table */
.active-row td {
     background-color: var(--active-row-bg) !important;
     }

.table-responsive {
     margin-top: 20px;
     /* Ensure sticky positioning works */
    overflow: auto;
     max-height: calc(100vh - 100px); /* Leave room for any top content */
     }

.edit-cell {
    cursor: pointer;
     }

.edit-cell:hover {
     background-color: #f8f9fa;
     }

.edit-cell:focus {
    outline: 2px solid var(--focus-outline-color);
     outline-offset: -2px;
     }

.table th {
     text-align: center;
     font-size: 0.95rem;
     white-space: nowrap;
    cursor: pointer;
     user-select: none;
    position: relative;
     }

.table th:hover {
     background-color: #f8f9fa;
     }

.table th.sort-asc::after {
    content: '↑';
    opacity: 1;
     }

.table th.sort-desc::after {
    content: '↓';
    opacity: 1;
     }

.table td {
     font-size: 0.85rem;
    padding: 0.15rem 0.5rem;
     vertical-align: middle;
     line-height: 1.2;
     }

     /* Maintain consistent text size in edit mode */
.table td input {
     font-size: inherit;
    padding: 0;
    height: auto;
     min-height: 0;
     line-height: inherit;
    border: none;
    background: #fff;
     box-shadow: none;
    width: 100%;
     }

     /* Center specific columns */
     td[data-field="ArticleID"],
     td[data-field="Strapiid"],
     td[data-field-type="select"],
     td[data-field-type="date"],
     td[data-field-type="boolean"] {
     text-align: center;
     padding-top: 0.5rem;
     padding-bottom: 0.5rem;
     }

     /* Date field specific */
     td[data-field-type="date"] {
     white-space: nowrap;
     }

     /* Select cell specific */
     td[data-field-type="select"] {
    padding: 0.5rem;
    height: 100%;
     white-space: nowrap;
     }

     h1 {
     font-size: 1.8rem;
     text-align: center;
     }

.btn {
     font-size: 0.85rem;
     }

.btn-danger.btn-sm {
    padding: 0rem 0.25rem;
     font-size: 0.75rem;
     line-height: 1.2;
     }

     /* Make table more compact */
.table > :not(caption) > * > * {
    padding: 0.15rem 0.5rem;
     }

.topic-dropdown-cell {
     /* padding-right still useful if we want to ensure some space, but not for a custom arrow now */
     /* cursor: pointer; /* The select itself will have a cursor */
     }
     select.topic-select-rendered {
     font-size: inherit; /* Inherit font size from parent (td) */
     background-color: transparent; /* Allow zebra striping to show through */
    border: none; /* Remove default border to look more like text */
     /* Remove native browser arrow for consistency */
     -webkit-appearance: none;
     -moz-appearance: none;
    appearance: none;
    padding: 0.375rem 0.75rem;
     padding-right: 2rem; /* Make room for custom arrow */
    width: 100%; /* Make it fill the cell */
    cursor: pointer;
     box-sizing: border-box; /* Ensures padding and border don't add to width */
    outline: none; /* Remove default browser outline */
     }
     /* Custom arrow for all dropdown cells */
.topic-dropdown-cell {
    position: relative;
     }
.topic-dropdown-cell::after {
    content: '▼';
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
     font-size: 0.8em;
    color: #666;
     pointer-events: none;
     }
     /* Ensure select text color matches table text */
     #scheduleTable select.topic-select-rendered {
    color: inherit;
     }

     /* Reduce vertical padding for a more compact table view */
     #scheduleTable td {
     padding-top: 0rem;
     padding-bottom: 0rem;
     }
     /* Multi-select cell styling */
.multiselect-cell {
    position: relative;
    cursor: pointer;
    padding: 0.15rem 0.5rem;
     font-family: inherit;
     }

.multiselect-cell:focus {
    outline: 2px solid var(--focus-outline-color);
     outline-offset: -2px;
     }

     /* Multi-select modal styling */
.multi-select-modal {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
     z-index: 1000;
    background: white;
    border: 1px solid #ccc;
    padding: 20px;
     }



.multi-select-modal-body {
     margin-bottom: 15px;
     }

     /* Checkbox list styling for multi-select */
.checkbox-list div {
    margin: 4px 0;
    display: flex;
     align-items: center;
     }

.checkbox-list label {
     margin-left: 8px;
    cursor: pointer;
    flex: 1;
     }

.checkbox-list input[type="checkbox"] {
    cursor: pointer;
     }

.multi-select-modal-footer {
     text-align: right;
     }

.multi-select-modal-footer button:first-child {
     margin-right: 10px;
     }

.multiselect-cell:hover {
     background-color: #f8f9fa;
     }

.multiselect-display {
    display: inline-block;
     max-width: calc(100% - 20px);
    overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
     font-family: inherit;
     }

.multiselect-edit-icon {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%) scaleX(-1);
     font-size: 0.8em;
    opacity: 0.6;
     pointer-events: none;
     }

.multiselect-cell:hover .multiselect-edit-icon {
    opacity: 1;
     }








     /* Visual indicator for multi-select cells */
     td[data-field-type="multiselect"] {
    position: relative;
    cursor: pointer;
     }

     td[data-field-type="multiselect"]:focus {
    outline: 2px solid var(--focus-outline-color);
     outline-offset: -2px;
     }
     /* Down arrow for multi-select cells */
     td[data-field-type="multiselect"]::after {
    content: '▼';
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
     font-size: 0.8em;
    color: #666;
     pointer-events: none;
     }
     /* Hover effect for multi-select cells */
     td[data-field-type="multiselect"]:hover {
     background-color: #f8f9fa;
     }

     /* Focus style for select cells */
     td[data-field-type="select"]:focus {
    outline: 2px solid var(--focus-outline-color);
     outline-offset: -2px;
     }

     /* Remove outline from select elements and apply to parent cell */
     td[data-field-type="select"] select:focus {
    outline: none;
     }

     /* Focus style for select cells when select element is focused */
     td[data-field-type="select"].select-focused {
    outline: 2px solid var(--focus-outline-color);
     outline-offset: -2px;
     }

     /* Focus style for text and boolean cells */
     td[data-field-type="text"]:focus,
     td[data-field-type="boolean"]:focus,
     td[data-field-type="boolean"] input[type="checkbox"]:focus {
    outline: 2px solid var(--focus-outline-color);
     outline-offset: -2px;
     }

     /* Focus style for boolean cells when checkbox is focused */
     td[data-field-type="boolean"].boolean-focused {
    outline: 2px solid var(--focus-outline-color);
     outline-offset: -2px;
     }

     /* Remove default focus outline from checkboxes in boolean cells */
     td[data-field-type="boolean"] input[type="checkbox"]:focus {
    outline: none;
     }
     /* Ensure date inputs work properly */
     input[type="date"] {
    width: 100%;
    padding: 0.375rem 0.75rem;
    border: 1px solid #ced4da;
     border-radius: 0.25rem;
     background-color: #fff;
    cursor: pointer;
     font-family: inherit;
    outline: none;
     }
     input[type="date"]:focus,
     input[type="date"]:hover,
     input[type="date"]:active,
     input[type="date"]:visited {
     border-color: #ced4da;
    outline: none;
     box-shadow: none;
     }
     /* Images cell styling */
.images-cell {
    cursor: default;
     }
.images-cell.clickable {
    cursor: pointer;
     }
.images-cell.clickable:hover {
     background-color: #f8f9fa;
     }
.images-cell:focus {
    outline: 2px solid var(--focus-outline-color);
     outline-offset: -2px;
     }
.images-icon {
     font-size: 1.5em;
     line-height: 1;
    display: inline-block;
     vertical-align: middle;
     }

     /* Notes cell styling */
.notes-cell {
    cursor: pointer;
     }
.notes-cell:hover {
     background-color: #f8f9fa;
     }
.notes-cell:focus {
    outline: 2px solid var(--focus-outline-color);
     outline-offset: -2px;
     }
.notes-icon {
     font-size: 1.5em;
     line-height: 1;
    display: inline-block;
     vertical-align: middle;
     }
     /* Images modal styling */
.images-modal {
    display: none;
    position: fixed;
     z-index: 1050;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
     background-color: rgba(0, 0, 0, 0.5);
     }

.images-modal-content {
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
     background-color: white;
     border-radius: 0.5rem;
     box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    width: 90%;
     max-width: 800px;
     max-height: 90vh;
    overflow: hidden;
     text-align: center;
    padding: 1rem;
     }

.images-modal-close {
    position: absolute;
    top: 10px;
    right: 15px;
    background: none;
    border: none;
     font-size: 24px;
     font-weight: bold;
    color: #666;
    cursor: pointer;
     z-index: 10;
    width: 30px;
    height: 30px;
    display: flex;
     align-items: center;
     justify-content: center;
     border-radius: 50%;
    transition: background-color 0.2s;
     }

.images-modal-close:hover {
     background-color: rgba(0, 0, 0, 0.1);
    color: #333;
     }

.modal-image {
     max-width: 100%;
     max-height: 80vh;
     border-radius: 0.25rem;
     box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
     }

     /* Notes modal styling */
.notes-modal {
    display: none;
    position: fixed;
     z-index: 1050;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
     background-color: rgba(0, 0, 0, 0.5);
     }
.notes-modal-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
     background-color: white;
     border-radius: 0.5rem;
     box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    width: 90%;
     max-width: 500px;
     max-height: 80vh;
    overflow: hidden;
     }
.notes-modal-header {
    padding: 1rem;
     border-bottom: 1px solid #dee2e6;
    display: flex;
     justify-content: space-between;
     align-items: center;
     }
.notes-modal-body {
    padding: 1rem;
     }
.notes-modal-footer {
    padding: 1rem;
     border-top: 1px solid #dee2e6;
    display: flex;
     justify-content: flex-end;
    gap: 0.5rem;
     }
.notes-textarea {
    width: 100%;
     min-height: 150px;
     max-height: 300px;
    border: 1px solid #ced4da;
     border-radius: 0.25rem;
    padding: 0.5rem;
     font-family: inherit;
    resize: vertical;
     }
.notes-textarea:focus {
     border-color: #86b7fe;
     box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    outline: none;
     }
.notes-tabs {
    display: flex;
     border-bottom: 1px solid #dee2e6;
     margin-bottom: 1rem;
     }
.notes-tab {
    background: none;
    border: none;
    padding: 0.5rem 1rem;
    cursor: pointer;
     border-bottom: 2px solid transparent;
     font-size: 0.9rem;
    color: #6c757d;
     }
.notes-tab.active {
    color: #0d6efd;
     border-bottom-color: #0d6efd;
     font-weight: 500;
     }
.notes-tab:hover:not(.active) {
    color: #495057;
     background-color: #f8f9fa;
     }
.notes-tab-content {
    display: none;
     }
.notes-tab-content.active {
    display: block;
     }
.notes-preview {
     min-height: 150px;
     max-height: 300px;
     overflow-y: auto;
    padding: 0.5rem;
    border: 1px solid #dee2e6;
     border-radius: 0.25rem;
     background-color: #f8f9fa;
     }
.notes-preview h1, .notes-preview h2, .notes-preview h3,
.notes-preview h4, .notes-preview h5, .notes-preview h6 {
     margin-top: 0.5rem;
     margin-bottom: 0.5rem;
     }
.notes-preview p {
     margin-bottom: 0.5rem;
     }
.notes-preview ul, .notes-preview ol {
     margin-bottom: 0.5rem;
     padding-left: 1.5rem;
     }
.notes-preview blockquote {
     border-left: 4px solid #dee2e6;
     padding-left: 1rem;
    margin: 0.5rem 0;
    color: #6c757d;
     }
.notes-preview code {
     background-color: #f1f3f4;
    padding: 0.125rem 0.25rem;
     border-radius: 0.25rem;
     font-size: 0.875em;
     }
.notes-preview pre {
     background-color: #f8f9fa;
    border: 1px solid #dee2e6;
     border-radius: 0.25rem;
    padding: 0.5rem;
     overflow-x: auto;
     }
.notes-preview pre code {
    background: none;
    padding: 0;
     }

     /* Read-only mode styling */
.read-only-mode {
     background-color: #f8f9fa;
     }
.read-only-mode .table {
     background-color: white;
     }
.read-only-mode select:disabled {
     background-color: #e9ecef;
    color: #6c757d;
    cursor: not-allowed;
     }
.read-only-mode input:disabled {
     background-color: #e9ecef;
    cursor: not-allowed;
     }
.read-only-mode .edit-cell {
    cursor: default;
     }
.read-only-mode .topic-dropdown-cell {
    cursor: default;
     }
.read-only-mode .topic-dropdown-cell::after {
    display: none;
     }
.read-only-mode td[data-field-type="multiselect"]::after {
    display: none;
     }
     /* Multi-select modal styling to look like native select */


     /* Context Menu Styles */
.context-menu {
    position: fixed;
    background: white;
    border: 1px solid #ccc;
     border-radius: 4px;
     box-shadow: 0 2px 10px rgba(0,0,0,0.1);
     z-index: 1000;
     min-width: 150px;
    padding: 4px 0;
     }

.context-menu-item {
    padding: 2px 12px;
    cursor: pointer;
     user-select: none;
     font-size: 14px;
    color: #333;
     background-color: white;
    transition: background-color 0.1s ease;
     }

.context-menu-item:hover {
     background-color: #f8f9fa;
     }

.context-menu-item:active {
     background-color: #e9ecef;
     }

.context-menu-item.context-menu-info {
    cursor: default;
    color: #6c757d;
     font-weight: 500;
     background-color: #f8f9fa;
    padding: 0px 12px;
     }

.context-menu-item.context-menu-info:hover {
     background-color: #f8f9fa;
     }

.context-menu-item.context-menu-info:active {
     background-color: #f8f9fa;
     }

.context-menu-separator {
    height: 1px;
     background-color: #dee2e6;
    margin: 4px 0;
     }

     /* Hidden column styles */
.column-hidden {
    width: 0.5rem !important;
     max-width: 0.5rem !important;
     min-width: 0.5rem !important;
    overflow: hidden;
     }

.column-hidden th {
    padding: 0.15rem 0.1rem !important;
     text-align: center;
    cursor: pointer;
     background-color: #f8f9fa;
    border: 1px solid #dee2e6;
     }

.column-hidden td {
    padding: 0.15rem 0.25rem !important;
     text-align: center;
    cursor: pointer;
     }



.column-hidden td.edit-cell {
    cursor: pointer;
     }

     /* Prevent focus on hidden column cells */
.column-hidden td:focus,
.column-hidden th:focus {
    outline: none !important;
     box-shadow: none !important;
     }

     /* Hide down arrows in hidden columns */
.column-hidden::after {
    display: none !important;
     }

     /* Override padding for hidden multi-select columns */
.column-hidden td[data-field-type="multiselect"] {
     padding-right: 0.1rem !important;
     padding-left: 0.1rem !important;
     }

     /* Sticky table header - more specific to override .table th */
.table-responsive #scheduleTable thead th {
    position: sticky !important;
    top: 0 !important;
     background-color: #fff !important;
     z-index: 10 !important;
     border-bottom: 2px solid #dee2e6 !important;
     }

     /* Ensure sticky header works with table styling */
.table-responsive #scheduleTable thead th::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
     background-color: inherit;
     z-index: -1;
     }
