/* App-specific overrides and utilities */
.container { max-width: 1200px; }
.actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.error { color: var(--bs-danger); }
.success { color: var(--bs-success); }
.form-actions .btn { margin-right: 0.5rem; }
.nav-link:hover { box-shadow: none !important; }
.nav-link:focus { box-shadow: none !important; }
.nav-link:focus-visible { box-shadow: none !important; }

/* Color swatches in admin forms */
.color-swatch-label { cursor: pointer; display: inline-block; }
.color-swatch {
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  border: 2px solid rgba(0,0,0,0.2);
  border-radius: 4px;
}
.color-swatch-label input:checked + .color-swatch { border-color: var(--bs-primary); box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb), 0.25); }
.color-swatch-label:hover .color-swatch { border-color: rgba(0,0,0,0.4); }

/* Clients & Projects combined list: Client and Project columns same width */
table.table.clients-projects-table .clients-projects-client-col,
table.table.clients-projects-table .clients-projects-project-col { width: 45%; }

/* Color swatch in Clients/Projects list tables */
.list-color-swatch {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  border: 1px solid rgba(0,0,0,0.2);
  border-radius: 3px;
  vertical-align: middle;
}

/* Demand table: light background by project/client color (override Bootstrap table-striped) */
.demand-cell { cursor: pointer; }
.demand-cell:hover { background-color: var(--bs-table-hover-bg); }
table.table td.demand-bg-red { background-color: #fef2f2; }
table.table td.demand-bg-orange { background-color: #fff7ed; }
table.table td.demand-bg-amber { background-color: #fffbeb; }
table.table td.demand-bg-yellow { background-color: #fefce8; }
table.table td.demand-bg-lime { background-color: #f7fee7; }
table.table td.demand-bg-green { background-color: #f0fdf4; }
table.table td.demand-bg-emerald { background-color: #ecfdf5; }
table.table td.demand-bg-teal { background-color: #f0fdfa; }
table.table td.demand-bg-cyan { background-color: #ecfeff; }
table.table td.demand-bg-blue { background-color: #eff6ff; }
table.table td.demand-bg-indigo { background-color: #eef2ff; }
table.table td.demand-bg-violet { background-color: #f5f3ff; }
table.table td.demand-bg-purple { background-color: #faf5ff; }
table.table td.demand-bg-pink { background-color: #fdf2f8; }
table.table td.demand-bg-rose { background-color: #fff1f2; }
table.table td.demand-bg-slate { background-color: #f8fafc; }

/* Demand table: likelihood background on month cells (light variants, override project color when set) */
table.table td.demand-likely-guaranteed { background-color: #dcfce7; }
table.table td.demand-likely-likely { background-color: #fef9c3; }
table.table td.demand-likely-uncertain { background-color: #fee2e2; }

/* Demand table: divider after each client block (3px, all columns including Client & Project) */
table.table tr.demand-client-block-end td { border-bottom: 2px solid #adb5bd; }
table.table td.demand-client-block-end-cell { border-bottom: 2px solid #adb5bd; }

/* Demand cell tooltip popup (below cell) */
.demand-tooltip-popup {
  position: fixed;
  z-index: 1060;
  min-width: 12rem;
  padding: 0.5rem 0.75rem;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.15);
  border-radius: 0.375rem;
  box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}
.demand-tooltip-popup .demand-tt-row { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; margin-bottom: 0.35rem; }
.demand-tooltip-popup .demand-tt-row:last-of-type { margin-bottom: 0.5rem; }
.demand-tooltip-popup input[type="number"] { width: 4.5rem; padding: 0.2rem 0.35rem; }
.demand-tooltip-popup .btn-unit-toggle { min-width: 2.75rem; }
.demand-tooltip-popup .btn-likelihood-toggle { width: 1.75rem; height: 1.75rem; padding: 0; border-radius: 0.25rem; }
.demand-tooltip-popup .btn-likelihood-toggle.lik-guaranteed { background-color: #dcfce7; border: 1px solid #22c55e; }
.demand-tooltip-popup .btn-likelihood-toggle.lik-likely { background-color: #fef9c3; border: 1px solid #eab308; }
.demand-tooltip-popup .btn-likelihood-toggle.lik-uncertain { background-color: #fee2e2; border: 1px solid #ef4444; }
.demand-tooltip-popup .demand-tt-actions { align-items: center; gap: 0.5rem; }
.demand-tooltip-popup .demand-tt-btn-icon {
  border: none;
  background: transparent;
  padding: 0.2rem;
  margin: 0;
  min-width: 0;
  line-height: 1;
  cursor: pointer;
  vertical-align: middle;
}
.demand-tooltip-popup .demand-tt-btn-icon:hover:not(:disabled) { opacity: 0.8; }
.demand-tooltip-popup .demand-tt-btn-icon:disabled { opacity: 0.4; cursor: not-allowed; }
.demand-tooltip-popup .demand-tt-btn-icon img { display: block; vertical-align: middle; }
.demand-tooltip-popup .demand-tt-copied-msg { font-size: 0.75rem; color: var(--bs-success); margin-left: 0.25rem; }

/* Plus icon in empty month cells: slightly transparent (greyer) */
.month-cell-plus-icon { opacity: 0.6; }

/* Capacity & Availability: editable cells and overridden availability */
.capacity-cell,
.availability-cell { cursor: pointer; }
.capacity-cell:hover,
.availability-cell:hover { background-color: var(--bs-table-hover-bg); }
table.table td.availability-override { background-color: #fef9c3; }

/* Coverage table: cell background by coverage % */
table.table td.coverage-low { background-color: #fee2e2; }   /* < 95%: light red */
table.table td.coverage-high { background-color: #fef9c3; }  /* > 105%: light yellow */
table.table td.coverage-no-demand { background-color: #ffedd5; }  /* allocation without demand: light orange */

/* Utilization table: cell background by utilization % */
table.table td.utilization-low { background-color: #fee2e2; }   /* < 95%: light red */
table.table td.utilization-high { background-color: #fef9c3; }  /* > 105%: light yellow */

/* Summary table: Allocated row (allocated vs demand %); Unallocated row (PD thresholds) */
table.table td.summary-demand-low { background-color: #fee2e2; }    /* allocated < 95% of demand: light red */
table.table td.summary-demand-ok { background-color: #dcfce7; }      /* allocated 95–105% of demand: light green */
table.table td.summary-demand-high { background-color: #fef9c3; }   /* allocated > 105% of demand: light yellow */
table.table td.summary-unalloc-low { background-color: #fef9c3; }    /* unallocated < -5 PD: light yellow */
table.table td.summary-unalloc-ok { background-color: #dcfce7; }     /* unallocated -5 to 5 PD: light green */
table.table td.summary-unalloc-high { background-color: #fee2e2; }   /* unallocated > 5 PD: light red */

/* Allocation table: add-allocation icon button (text height, no border, tight to text) */
.btn-add-allocation-icon {
  border: none;
  background: transparent;
  padding: 0;
  margin-left: 0.25em;
  min-width: 0;
  width: auto;
  line-height: 1;
  vertical-align: middle;
}
.btn-add-allocation-icon:hover { opacity: 0.7; }
.btn-add-allocation-icon img { vertical-align: middle; display: block; }

/* Demand table: add-demand icon button next to project name (inline, one spacing) */
.btn-add-demand-icon {
  border: none;
  background: transparent;
  padding: 0;
  margin-left: 0.2em;
  min-width: 0;
  width: auto;
  line-height: 1;
  vertical-align: middle;
}
.btn-add-demand-icon:hover { opacity: 0.7; }
.btn-add-demand-icon img { vertical-align: middle; display: block; }

/* Demand & Allocation tables: Group column text color */
table.table td.group-text-poc { color: #2563eb; }        /* POC = blue */
table.table td.group-text-development { color: #b91c1c; } /* Development = red */
table.table td.group-text-ui-ux { color: #15803d; }     /* UI/UX = green */

/* Allocation view (Gantt-style): table and bars */
.gantt-table { table-layout: fixed; }
.gantt-table .gantt-label-col { width: 12rem; min-width: 12rem; vertical-align: top; }
.gantt-table .gantt-month-col { min-width: 8rem; text-align: center; }
.gantt-table .gantt-month-cell { min-height: 2.5rem; padding: 0.35rem 0.5rem; vertical-align: top; }
.gantt-table .gantt-month-cell .gantt-bar {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}
.gantt-bars { display: flex; flex-wrap: wrap; gap: 0.25rem; align-items: flex-start; }
.gantt-bar {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  font-size: 0.8rem;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gantt-bar-project .gantt-bar-inner { color: #1f2937; }
.gantt-bar-project { border: 1px solid rgba(0,0,0,0.1); }
.gantt-bar-resource { background-color: #e7f1ff; border: 1px solid #b6d4fe; color: #0a58ca; }
.gantt-bar-empty { font-size: 0.875rem; }
