/* Unassigned ghost tasks: row visible in grid, bar hidden in chart */
#jobVisualization .wx-bar.wx-task.unassigned {
    display: none !important;
}

.wx-progress-marker {
    pointer-events: none;
}

/* SVAR Gantt — column background highlights (applied via scales[].css callback) */
/* Light theme */
.wx-willow-theme .col-weekend      { background: #d3d7cf; }
.wx-willow-theme .col-weekday-alt  { background: #ebebeb; }

/* Dark theme — use the dark palette variables */
.wx-willow-dark-theme .col-weekend     { background: #3e4549; }
.wx-willow-dark-theme .col-weekday-alt { background: #363b3f; }

/* Main Gantt views — position:relative + overflow:hidden so SVAR scrolls internally */
#jobVisualization,
#resourceVisualization {
    height: calc(100vh - var(--topbar-height, 48px) - 210px);
    overflow: hidden;
    position: relative;
}

/* Theme wrappers and Fullscreen wrapper need height:100% so the Gantt fills them. */
#jobVisualization .wx-willow-theme,
#resourceVisualization .wx-willow-theme,
#jobVisualization .wx-willow-dark-theme,
#resourceVisualization .wx-willow-dark-theme,
#jobVisualization .wx-fullscreen,
#resourceVisualization .wx-fullscreen {
    height: 100%;
}

/* Smaller font in the Gantt grid so more rows are visible */
#jobVisualization .wx-willow-theme,
#jobVisualization .wx-willow-dark-theme,
#jobVisualization .wx-fullscreen,
#resourceVisualization .wx-willow-theme,
#resourceVisualization .wx-willow-dark-theme,
#resourceVisualization .wx-fullscreen {
    --wx-font-size: 11px;
    --wx-font-size-md: 13px;
    --wx-font-size-sm: 10px;
}

/* Theme toggle buttons */
#ganttThemeToggle,
#ganttThemeToggle2 {
    font-size: 0.875rem;
    padding: 5px 12px;
}

/* Allow selecting/copying text anywhere in the Gantt (grid cells + timeline bars/labels).
   SVAR's own user-select:none rules (svar-gantt.css) stay scoped to interactive chrome
   (buttons, icons, tabs, pager, segments) so they aren't touched here. Dragging a task bar
   to move/resize it still works — that gesture sets user-select:none on document.body itself
   for the duration of the drag, which wins regardless of these rules. */
#jobVisualization,
#jobVisualization .wx-cell,
#jobVisualization .wx-text,
#jobVisualization .wx-bar,
#jobVisualization .wx-scale,
#modalGanttContainer,
#modalGanttContainer .wx-cell,
#modalGanttContainer .wx-text,
#modalGanttContainer .wx-bar,
#modalGanttContainer .wx-scale,
#resourceVisualization,
#resourceVisualization .wx-cell,
#resourceVisualization .wx-text,
#resourceVisualization .wx-bar,
#resourceVisualization .wx-scale {
    -webkit-user-select: text;
    -moz-user-select: text;
    user-select: text;
}

/* SVAR task bar fills its cell */
.svar-task-bar {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    border-style: solid;
    border-width: 2px;
}
.box {
    /*height: 600px;*/
    /*max-height: 400px;*/
    /*overflow-y: scroll;*/
}

.subbox {
    height: 350px;
    width: 80%;
}

/* Custom styles for better layout */
.main-controls {
    background: white;
    margin-bottom: 15px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
}

/* Fix alignment issues in main controls */
.main-controls .row {
    display: flex;
    align-items: center; /* centra verticalmente TODOS los elementos */
}

.main-controls .control-button,
.main-controls .btn {
    vertical-align: middle;
}

.main-controls .btn-group .btn {
    height: 42px; /* iguala altura exacta */
    display: flex;
    align-items: center;
}

.main-controls .btn.btn-danger.btn-sm {
    height: 31px;
}

.main-controls .col-md-3,
.main-controls .col-md-6 {
    min-height: 60px; /* Reserve space for potential file info */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.main-controls .col-md-6 {
    align-items: center; /* Keep center buttons centered horizontally */
}

.main-controls .col-md-3 {
    align-items: flex-start; /* Align buttons to the left/right as intended */
    justify-content: center; /* Center vertically */
}

.main-controls .col-md-3:last-child {
    align-items: flex-end; /* Align export section to the right */
    flex-direction: row !important; /* Keep buttons side by side */
    justify-content: flex-end !important; /* Align to the right */
}

.main-controls .col-md-3 .control-button {
    margin-bottom: 0.5rem; /* Add consistent spacing */
    width: auto !important; /* Prevent buttons from stretching */
    flex-shrink: 0; /* Prevent buttons from shrinking */
}

/* Ensure uploaded file info doesn't affect layout */
#uploadedFileInfo {
    position: absolute;
    top: 70%;
    left: 17px;
    right: 17px;
    z-index: 10;
    margin-top: 0.25rem !important;
}

/* Make the upload section position relative for absolute positioning of file info */
.main-controls .col-md-3:first-child {
    position: relative;
}

/* Notification Panel z-index and opacity fix */
.notification-container {
    z-index: 3000 !important;
}

#notificationPanel {
    z-index: 3001 !important;
}

#notificationPanel .toast {
    background-color: #ffffff !important;
    opacity: 1 !important;
}

#notificationPanel .toast-body {
    background-color: #ffffff !important;
}

.data-section {
    display: none;
}

.btn {
    border-radius: 0.375rem !important; /* Less rounded */
}

.app-swal-actions {
    gap: 0.5rem;
}

/* Fix for split buttons to look like one */
.btn-group > .btn:not(:last-child):not(.dropdown-toggle) {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.btn-group > .btn:not(:first-child) {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    margin-left: -1px; /* Remove gap */
}

.data-section.active {
    display: block;
}

.hero-section {
    text-align: center;
    margin-top: 40px;
    margin-bottom: 40px;
}

.control-button {
    margin: 0 5px;
}

html, body {
    height: 100%;
}

body {
    display: flex;
    flex-direction: column;
}

#app-shell {
    flex: 1;
    min-height: 0;
}

footer {
    margin-top: auto;
}

/* Increase navbar size */
.navbar {
    min-height: 60px;
}

.navbar-brand {
    font-size: 1.5rem !important;
    font-weight: 600;
}

.navbar .btn {
    padding: 0.5rem 1rem !important;
    font-size: 1rem;
}

/* uploaded file info */

#uploadedFileInfo .badge {
    font-size: 0.75em;
    padding: 0.25em 0.5em;
}

#uploadedFileName {
    cursor: help;
    max-width: 60px;
    display: inline-block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border-radius: 0.375rem !important;
}

/* Custom color for CSV upload button */
.lightBlueButton {
    background-color: #0A6FFD !important;
    border-color: #0A6FFD !important;
    color: white !important;
}

.lightBlueButton:hover {
    background-color: #0A6FFD !important;
    border-color: #0A6FFD !important;
    opacity: 0.9;
}

.lightBlueButton:active,
.lightBlueButton:focus {
    background-color: #2E56FF !important;
    border-color: #2E56FF !important;
    box-shadow: 0 0 0 0.2rem rgba(10, 111, 253, 0.25) !important;
    opacity: 0.8;
}

/* Logo image styling */
.navbar-brand-img {
    height: 40px;
    width: auto;
    max-height: 50px;
    object-fit: contain;
}

/* Update navbar brand styling for image */
.navbar-brand {
    padding: 0.25rem 2rem 0.25rem 0 !important; /* Keep right padding */
    margin-left: 25px !important; /* 25px from left border */
    margin-right: 1rem !important;
    display: flex !important;
    align-items: center !important;
}

.navbar .container-fluid {
    justify-content: space-between !important;
}

#userInfo {
    margin-left: auto !important;
    margin-right: 25px !important;
    display: flex !important;
    align-items: center !important;
}

/* Styles for the new Bootstrap multi-select dropdown */
#crewFilterDropdown .dropdown-menu {
    padding: 10px;
}

#crewFilterDropdown .dropdown-item {
    padding: 0.25rem 1rem;
}

#crewFilterDropdown .form-check {
    padding-left: 2.5em;
}

#crewFilterDropdown .form-check-input {
    margin-left: -1.5em;
}

#crewFilterDropdown .dropdown-item:hover {
    background-color: #f8f9fa;
}

#crewFilterDropdown .dropdown-item.active {
    background-color: #e9ecef;
    color: #212529;
}

#crewFilterDropdown .dropdown-item.active .form-check-input {
    border-color: #0d6efd;
}

#crewFilterDropdown .dropdown-item.active .form-check-input:checked {
    background-color: #0d6efd;
}

.crew-list-container {
    max-height: 200px;
    overflow-y: auto;
    margin-bottom: 10px;
}

.rule-weight-table-container {
    max-height: 350px;
    overflow-y: auto;
    margin-bottom: 1rem;
}

.rule-weight-table-container table {
    margin-bottom: 0;
}

.rule-weight-table-container thead th {
    position: sticky;
    top: 0;
    background-color: #fff;
    z-index: 1;
}

.weight-zero {
    background-color: #f8f9fa;
    color: #6c757d;
    text-decoration: line-through;
}

.optimization-dropdown {
    max-height: 200px;
    max-width: 600px;
    overflow-y: auto;
}

#prioritizedCrewsCheckboxesContainer .form-check-input {
    margin-left: -0.5em;
    margin-right: 0.5em;
}

#grupoPlanFilterMenu .form-check-input,
#claseActividadFilterMenu .form-check-input {
    margin-left: -0.5em;
    margin-right: 0.5em;
}

/* Bootstrap's default .tooltip-inner max-width (200px) forces this hint's longer
   text into a tall, narrow column. Scoped via data-bs-custom-class so no other
   tooltip on the page is affected. */
.backlog-hint-tooltip .tooltip-inner {
    max-width: 320px;
    text-align: left;
}

#ruleWeightConfigModal .modal-footer {
    justify-content: flex-end;
}

#ruleWeightConfigModal .modal-footer .btn {
    margin-left: 0.5rem;
}

#crewAvailabilityModal .modal-footer .btn {
    margin-left: 0.5rem;
}

#ruleWeightConfigModal .modal-footer #backToUploadButton {
    margin-right: auto;
}

/* Crew Availability Modal */
.crew-availability-modal-content {
    /*height: 80vh; */ /* 80% of the viewport height */
    display: flex;
    flex-direction: column;
}

.crew-availability-table-container {
    height: calc(80vh - 170px); /* Adjust based on header/footer height */
    overflow-y: auto;
    position: relative;
}

#crewAvailabilityTableHead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: #f8f9fa; /* Match modal background */
}

.disabled-crew {
    text-decoration: line-through;
    color: lightgray;
}

.equal-width-buttons > * {
    flex: 1 1 auto;
}

.equal-width-buttons .btn {
    white-space: nowrap;       /* evita saltos de línea */
    width: 100%;               /* ambos toman el mismo ancho */
}

.hidden {
    display: none !important;
}


/* --- Custom HAL Tabs --- */

.hal-tabs {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #ffffff;
    display: inline-flex;
}

.hal-tabs .nav-link {
    color: #6c757d; /* gris suave */
    background: transparent;
    border: none;
    padding: 8px 20px;
    border-radius: 6px;
}

.hal-tabs .nav-link:hover {
    background: #f2f2f2;
}

.hal-tabs .nav-link.active {
    background: var(--bs-primary);
    color: white;
}

/* Pedido de operaciones multi select input */

.multi-select-input {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 0.375rem 0.75rem;
    height: auto;
    cursor: text;
}
.multi-select-input .badge {
    display: inline-flex;
    align-items: center;
    margin-right: 5px;
    margin-bottom: 2px;
    margin-top: 2px;
}
.multi-select-input input {
    border: none;
    outline: none;
    flex-grow: 1;
    padding: 0;
    background: transparent;
    min-width: 150px;
}

/* Fix active color for the solve dropdown item */
#solveWithCrewModification:active {
    background-color: #198754 !important; /* Match btn-success color */
    color: white;
}

/* KPI Section Styles */
.kpi-value {
    font-size: 2.5rem;
    font-weight: 700;
    color: #333;
    line-height: 1.2;
}

.kpi-label {
    font-size: 0.9rem;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 5px;
}

.kpi-value-secondary {
    font-size: 2rem;
    font-weight: 700;
    color: #333;
    line-height: 1.2;
}

/* Responsive KPI text sizes */
@media (max-width: 1200px) {
    .kpi-value {
        font-size: 1.8rem;
    }
    .kpi-value-secondary {
        font-size: 1.4rem;
    }
    .kpi-label {
        font-size: 0.8rem;
    }
}

@media (max-width: 992px) {
    .kpi-value {
        font-size: 1.6rem;
    }
    .kpi-value-secondary {
        font-size: 1.2rem;
    }
    .kpi-label {
        font-size: 0.75rem;
    }
}

@media (max-width: 768px) {
    .kpi-value {
        font-size: 1.4rem;
    }
    .kpi-value-secondary {
        font-size: 1rem;
    }
    .kpi-label {
        font-size: 0.7rem;
    }
}

/* KPI Card Styles */
.kpi-card {
    background-color: #f9f9f9;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    height: 100%; /* Ensure cards in a row have equal height */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* LogoHAL brand green already used for chart bars/gauges, reused for the "After" comparison header */
.bg-logohal-green {
    background-color: #8cd610;
}

/* Before/After optimization comparison section: fall back to horizontal scroll only
   in extreme cases — sizing below should make everything fit without one normally. */
.comparison-scroll-x {
    overflow-x: auto;
}

.comparison-metric-grid .impact-absolute,
.comparison-metric-grid .impact-relative {
    white-space: nowrap;
}

/* 5 metrics side by side per card (matching the reference mock-up) need a much smaller
   font than the standalone weekly-saturation KPI cards that .kpi-value/.kpi-value-secondary
   were originally sized for — otherwise values like "+17,06 p.p." and labels like
   "Productividad Media" don't fit in a fifth-width column and force a scrollbar/wrap. */
.comparison-metric-grid .kpi-value {
    font-size: 0.95rem;
}

.comparison-metric-grid .kpi-value-secondary {
    font-size: 0.62rem;
}

.comparison-metric-grid .kpi-label {
    font-size: 0.58rem;
    letter-spacing: 0.1px;
    white-space: nowrap;
}

.comparison-chart-wrapper {
    position: relative;
    min-height: 280px;
    margin-top: -30px;
}

/* ─── Modal mini-Gantt ───────────────────────────────────── */

.modal-gantt-col {
    min-width: 0; /* prevent flex blowout */
}

.modal-gantt-container {
    height: 210px;
}

/* Modal gantt grid column is kept narrow via the SVAR column width prop (90px) */

.modal-gantt-legend {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 2px;
    vertical-align: middle;
}

.modal-gantt-legend-ot {
    background-color: #c8e6c9;
    border: 1.5px solid #388e3c;
}

.modal-gantt-legend-crew {
    background-color: #ffe0b2;
    border: 1.5px solid #e65100;
}

/* ─── Unassigned Tab ─────────────────────────────────────── */

.unassigned-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
}

.unassigned-filters .form-control,
.unassigned-filters .form-select {
    max-width: 160px;
}

.unassigned-table-wrapper {
    max-height: calc(100vh - var(--topbar-height, 48px) - 240px);
    overflow-y: auto;
}

/* OT row (level 1) */
.unassigned-table .ot-row {
    cursor: pointer;
    font-weight: 600;
    background-color: #f9f9f9;
}

.unassigned-table .ot-row:hover {
    background-color: #eef2ff;
}

.unassigned-table .ot-row > td:first-child::before {
    content: "▶";
    display: inline-block;
    margin-right: 6px;
    font-size: 0.7em;
    color: #6c757d;
    transition: transform 0.15s ease;
}

.unassigned-table .ot-row.expanded > td:first-child::before {
    transform: rotate(90deg);
}

/* Job container row (holds the nested table) */
.unassigned-table .job-container-row > td.job-subtable-cell {
    padding: 0 0 0 2rem;
    background-color: #fafafa;
    border-top: none;
}

/* Nested job sub-table */
.unassigned-job-table {
    border-top: 2px solid #c8cbcf !important;
}

.unassigned-job-table thead th {
    font-size: 0.78rem;
    font-weight: 600;
    color: #495057;
    white-space: nowrap;
    padding: 0.35rem 0.6rem;
}

.unassigned-job-table tbody tr:hover {
    background-color: #f0f4ff;
}

.unassigned-job-table tbody td {
    padding: 0.35rem 0.6rem;
    vertical-align: middle;
}

.unassigned-job-table .relation-cell {
    max-width: 160px;
    white-space: normal;
    word-break: break-word;
    color: #555;
}

/* Assigned tick state */
.unassigned-table tr.assigned-tick {
    opacity: 0.55;
}

.unassigned-table .ot-row.assigned-tick > td:first-child::after {
    content: " ✓";
    color: #28a745;
    font-weight: bold;
    font-size: 0.85em;
}

.unassigned-job-table tbody tr.assigned-tick > td:first-child::after {
    content: " ✓";
    color: #28a745;
    font-weight: bold;
    font-size: 0.85em;
}

/* ── Crew Saturation View ──────────────────────────────────────────────────── */
.crew-sat-wrapper {
    max-height: calc(100vh - var(--topbar-height, 48px) - 250px);
    overflow-y: auto;
    overflow-x: auto;
}

.crew-sat-table {
    font-size: 0.8rem;
    white-space: nowrap;
    border-collapse: separate;
    border-spacing: 0;
}

.crew-sat-thead th {
    background: #f8f9fa;
    font-weight: 600;
    position: sticky;
    top: 0;
    z-index: 2;
    border-bottom: 2px solid #dee2e6;
    padding: 6px 8px;
    vertical-align: middle;
}

.crew-sat-sortable {
    cursor: pointer;
    user-select: none;
}

.crew-sat-sortable:hover {
    background: #e9ecef;
}

.crew-sat-parent {
    font-weight: 600;
    background: #f0f2f5;
    cursor: pointer;
    user-select: none;
}

.crew-sat-parent:hover {
    background: #e2e6ea;
}

.crew-sat-parent td {
    padding: 5px 8px;
    vertical-align: middle;
}

.crew-sat-chevron {
    color: #6c757d;
    font-size: 0.75rem;
    transition: transform 0.15s;
}

.crew-sat-child-row > td {
    padding: 0 !important;
    background: #fafafa;
}

.crew-sat-subtable-cell {
    padding: 0 0 0 2rem !important;
    background-color: #fafafa;
    border-top: none;
}

.crew-sat-nested {
    border-top: 2px solid #c8cbcf !important;
    font-size: 0.78rem;
}

.crew-sat-nested thead th {
    font-size: 0.78rem;
    font-weight: 600;
    color: #495057;
    white-space: nowrap;
    padding: 0.35rem 0.6rem;
}

.crew-sat-nested tbody tr:hover {
    background-color: #f0f4ff;
}

.crew-sat-nested tbody td {
    padding: 0.35rem 0.6rem;
    vertical-align: middle;
}

/* Saturation color classes for cells, badges and progress bars */
.sat-red          { background-color: #f8d7da; color: #842029; }
.sat-orange       { background-color: #ffe5d0; color: #7a3200; }
.sat-light-green  { background-color: #d4edda; color: #155724; }
.sat-green        { background-color: #198754; color: #fff; }

.sat-badge {
    display: inline-block;
    padding: 0.15em 0.45em;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 700;
}

.progress-bar.sat-red         { background-color: #dc3545; }
.progress-bar.sat-orange      { background-color: #fd7e14; }
.progress-bar.sat-light-green { background-color: #5cb85c; }
.progress-bar.sat-green       { background-color: #198754; }

.crew-sat-progress {
    height: 7px;
    border-radius: 3px;
}

/* Legend chips */
.sat-chip {
    display: inline-block;
    width: 13px;
    height: 13px;
    border-radius: 3px;
    vertical-align: middle;
    margin-right: 3px;
    border: 1px solid rgba(0,0,0,0.15);
}
.sat-chip.sat-red         { background-color: #f8d7da; }
.sat-chip.sat-orange      { background-color: #ffe5d0; }
.sat-chip.sat-light-green { background-color: #d4edda; }
.sat-chip.sat-green       { background-color: #198754; }

.crew-sat-legend {
    font-size: 0.78rem;
    color: #555;
    padding-top: 4px;
}


/* ── Gantt task tooltip ────────────────────────────────────────────────────── */
.gantt-tooltip {
    white-space: nowrap;
    padding: 6px 10px;
    background: var(--wx-tooltip-background, #fff);
    border-radius: 4px;
}

.gantt-tooltip-title {
    font-family: var(--wx-font-family, sans-serif);
    font-size: 13px;
    font-weight: 700;
    color: var(--wx-color-primary-font, #333);
    margin-bottom: 5px;
}

.gantt-tooltip-row {
    font-family: var(--wx-font-family, sans-serif);
    font-size: 12px;
    color: var(--wx-color-primary-font, #333);
    display: flex;
    gap: 6px;
    margin-bottom: 3px;
}

.gantt-tooltip-row:last-child { margin-bottom: 0; }

.gantt-tooltip-label {
    font-weight: 700;
    min-width: 62px;
}

/* ── Clip scale header text so small cells show tick marks, not overflowing text */
#jobVisualization .wx-scale .wx-cell,
#resourceVisualization .wx-scale .wx-cell {
    overflow: hidden;
}

/* ── Prevent left-column flicker on vertical scroll ────────────────────────
   SVAR's scroll architecture: .wx-gantt (overflow-y:auto) is the native scroller;
   inside it .wx-pseudo-rows holds the full content height (the scroll range), and
   .wx-stuck is `position:sticky; top:0` so it stays pinned to the viewport while
   the visible row window is shifted via --wx-body-offset.
   The flicker comes from two elements being re-positioned on the MAIN thread every
   scroll frame: the native scroller (.wx-gantt) and, more importantly, the sticky
   container (.wx-stuck) which re-pins each frame and repaints the rows inside it.
   Fix: promote each to its own GPU compositor layer with will-change:transform, so
   the per-frame repositioning happens on the compositor thread without repainting
   the row cells. .wx-header-wrapper (the sticky column headers) gets the same
   treatment. NOTE: do NOT convert .wx-body's `top` offset to `transform` — a
   fractional translateY re-rasterises the row text every frame and makes the rows
   themselves shimmer; leave SVAR's `top` offset alone and just composite the
   containers around it. */
#jobVisualization .wx-gantt,
#resourceVisualization .wx-gantt,
#jobVisualization .wx-stuck,
#resourceVisualization .wx-stuck,
#jobVisualization .wx-header-wrapper,
#resourceVisualization .wx-header-wrapper {
    will-change: transform;
}

/* The real cause of the row jitter: SVAR virtualises the grid — it inserts/removes
   .wx-row elements from the DOM as you scroll. When rows change above the viewport,
   the browser's SCROLL ANCHORING tries to keep content stable by nudging scrollTop,
   which fights SVAR's own --wx-body-offset repositioning. The two corrections race
   each frame and the rows visibly tickle. (Headers and chart bars don't virtualise,
   so they stay still.) Disabling scroll anchoring on the scroll container — and on
   the row body, so neither level re-anchors — stops the fight. */
#jobVisualization .wx-gantt,
#resourceVisualization .wx-gantt,
#jobVisualization .wx-body,
#resourceVisualization .wx-body,
#jobVisualization .wx-pseudo-rows,
#resourceVisualization .wx-pseudo-rows {
    overflow-anchor: none;
}

/* ── Hide Gantt task edge handles (duration must not be changed) ────────────── */
#jobVisualization .wx-bar .wx-link,
#resourceVisualization .wx-bar .wx-link {
    display: none !important;
}
/* Hides the left and right resize drag elements on the task bars */
.wx-gantt-task-resize-left,
.wx-gantt-task-resize-right,
.wx-gantt-task-handle-left,
.wx-gantt-task-handle-right {
    display: none !important;
    pointer-events: none !important;
}

/* Forces the mouse cursor to stay a normal pointer instead of showing horizontal resize arrows */
.wx-gantt-task,
.wx-gantt-item {
    cursor: default !important;
}
