/* ------------------------------------------------------------ cargabilidad */
.loadability { display: grid; gap: 14px; }
.interproject-load-project { display: grid; gap: 8px; min-width: 0; }
.interproject-load-project > header { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.interproject-load-project > header h3 { margin: 0; font-size: 16px; }
.interproject-load-project > header > span { color: var(--fg-dim); font-size: 12px; }
.interproject-dashboard .load-task { cursor: default; }
.interproject-dashboard .estimate-task-body form { display: none; }
.load-table-wrap {
  overflow: auto; background: var(--bg-2); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow);
}
.load-table {
  width: 100%; min-width: 980px; border-collapse: collapse; table-layout: fixed;
  font-size: 12px; line-height: 1.25;
}
.load-table th, .load-table td {
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: 6px 8px; vertical-align: top; background: #fff;
}
.load-table tbody tr { border-top: 6px solid #dfe1e6; }
.load-table tbody tr:first-child { border-top-width: 1px; }
.load-table tbody tr:nth-child(even) td { background: #fbfcfe; }
.load-table thead th {
  position: sticky; top: 0; z-index: 3; background: #eef1f5; color: var(--fg-dim);
  text-transform: uppercase; letter-spacing: .4px; font-size: 10px;
}
.load-table thead th:first-child { width: 170px; }
.load-table thead th:nth-child(2) { width: 430px; }
.load-table thead th:nth-child(3) { width: 82px; }
.load-table thead th span { display: block; font-size: 9px; line-height: 1; }
.load-table thead th b { display: block; font-size: 12px; line-height: 1.1; color: var(--fg); }
.load-day-head { position: relative; }
.load-day-head:hover::after {
  content: attr(data-tip); position: absolute; left: 50%; top: calc(100% + 6px);
  transform: translateX(-50%); z-index: 80; min-width: 170px; padding: 7px 9px;
  border-radius: 6px; background: #172b4d; color: #fff; text-transform: none;
  letter-spacing: 0; font-size: 12px; line-height: 1.25; box-shadow: 0 6px 18px rgba(9, 30, 66, .28);
}
.load-day-head:hover::before {
  content: ''; position: absolute; left: 50%; top: calc(100% + 1px); transform: translateX(-50%);
  border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 5px solid #172b4d;
  z-index: 81;
}
.load-person {
  position: sticky; left: 0; z-index: 2; display: flex; align-items: center; gap: 10px;
  color: var(--fg); background: linear-gradient(90deg, #deebff, #ffffff) !important;
  white-space: nowrap; border-left: 6px solid var(--accent-2); box-shadow: 3px 0 0 #b3d4ff;
  min-height: 66px;
}
.load-person .avatar { width: 30px; height: 30px; font-size: 11px; }
.load-person-text { display: grid; gap: 2px; min-width: 0; }
.load-person-text b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.load-person-text small { color: var(--fg-dim); font-size: 11px; font-weight: 600; }
.load-tasks { background: #fafbfc !important; }
.load-task {
  display: grid; grid-template-columns: auto auto auto minmax(80px, .7fr) minmax(0, 1fr) auto;
  align-items: center; gap: 6px; min-width: 0; padding: 3px 4px; border-radius: 4px;
  cursor: context-menu;
}
.load-task:hover { background: #ebecf0; }
.load-task.missing-estimate {
  background: #fff4c2; border-left: 4px solid #ffab00; padding-left: 6px;
}
.load-task.missing-estimate:hover { background: #ffe380; }
.load-task.missing-estimate b { color: #7a4f01; }
.load-task + .load-task { border-top: 1px dashed var(--line); }
.load-task a { color: var(--accent); font-weight: 700; text-decoration: none; }
.load-source { color: var(--fg-dim); font-size: 10px; }
.load-epic {
  position: relative;
  border-radius: 3px; padding: 1px 6px; font-size: 10px; font-weight: 600;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.load-epic.empty { background: #f4f5f7; color: #a5adba; }
.load-summary { position: relative; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.load-epic[data-tip]:hover::after,
.load-summary[data-tip]:hover::after {
  content: attr(data-tip); position: absolute; left: 0; top: calc(100% + 6px); z-index: 90;
  width: max-content; max-width: 420px; padding: 8px 10px; border-radius: 6px;
  background: #172b4d; color: #fff; box-shadow: 0 6px 18px rgba(9, 30, 66, .28);
  white-space: pre-wrap; line-height: 1.35; font-size: 12px; font-weight: 500;
}
.load-epic[data-tip]:hover::before,
.load-summary[data-tip]:hover::before {
  content: ''; position: absolute; left: 10px; top: calc(100% + 1px); z-index: 91;
  border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 5px solid #172b4d;
}
.load-total { text-align: center; font-weight: 700; color: var(--fg); background: #fafbfc !important; }
.load-total small { display: block; color: var(--fg-dim); font-weight: 600; }
.load-table tbody td.full { background: #c6f4d8 !important; color: #005c3d; text-align: center; font-weight: 700; }
.load-table tbody td.partial { background: #fff0b3 !important; color: #7a4f01; text-align: center; font-weight: 700; }
.load-table tbody td.vacation {
  background: #deebff !important; color: #0747a6; text-align: center; font-weight: 900;
}
.load-table tr.unassigned th, .load-table tr.unassigned td { background: #ffebe6 !important; }
.load-table tr.unassigned .load-person {
  border-left-color: var(--red); box-shadow: 3px 0 0 #ffbdad;
  background: linear-gradient(90deg, #ffebe6, #ffffff) !important;
}
.load-context-menu {
  position: fixed; z-index: 100; width: 250px; padding: 6px;
  background: #fff; border: 1px solid var(--line); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(9, 30, 66, .28);
}
.load-menu-title {
  padding: 5px 8px 7px; color: var(--fg-dim); font-size: 11px;
  text-transform: uppercase; letter-spacing: .4px; font-weight: 700;
}
.load-context-menu button {
  width: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px;
  padding: 7px 8px; border: 0; border-radius: 6px; background: transparent; text-align: left; cursor: pointer;
}
.load-context-menu button:hover { background: #deebff; }
.load-context-menu button:disabled { cursor: default; color: var(--fg-dim); background: #f4f5f7; }
.load-context-menu small { color: var(--fg-dim); font-size: 10px; }
.balance-panel {
  background: var(--bg-2); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 12px 14px; box-shadow: var(--shadow);
}
.balance-panel h3 { margin: 0 0 10px; font-size: 13px; color: var(--fg); }
.balance-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; }
.balance-card {
  display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; align-items: center;
  padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; background: #fafbfc;
}
.balance-card span:last-child { grid-column: 2; color: var(--fg-dim); font-size: 12px; }

@media (max-width: 1100px) {
  .plan-cols, .plan-cols.three { grid-template-columns: 1fr; }
  .plan-col + .plan-col { border-left: 0; border-top: 1px solid var(--line); }
}
.tag.sprint { background: #deebff; color: #0747a6; }
.tag.sprint.active { background: #e3fcef; color: #006644; }
.status-pill { border-radius: 3px; padding: 1px 7px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; }

.prio { display: inline-flex; align-items: center; gap: 4px; }
.prio .bar { width: 3px; height: 11px; border-radius: 2px; background: currentColor; }

