.planeacion-toolbar{
  background:#fff;
  border:1px solid #d0d7e2;
  border-radius:8px;
  padding:10px 12px;
  margin-bottom:10px;
}

.toolbar-left{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.week-info{ font-weight:900; color:#2f5597; }
.hint{ font-size:12px; color:#666; }

.table-wrap{
  background:#fff;
  border:1px solid #d0d7e2;
  border-radius:8px;
  overflow:auto;
  height: calc(100vh - 360px);
  cursor: grab;
}
.table-wrap.dragging{ cursor: grabbing; }

.excel-table{
  border-collapse:collapse;
  width:max-content;
  min-width:1100px;
}

.excel-table th,
.excel-table td{
  border:1px solid #c9c9c9;
  padding:6px 8px;
  font-size:12px;
  white-space:nowrap;
  text-align:center;
  background:#fff;
}

.excel-table thead th{
  position:sticky;
  top:0;
  z-index:100;
  background:#2f5597;
  color:#fff;
  font-weight:900;
}

.col-cliente{ min-width:260px; text-align:left !important; }
.col-semana{ min-width:150px; }
.col-proy{ min-width:140px; }
.col-week{ min-width:70px; }

.sep-right{ border-right:3px solid #000 !important; }

.sticky{ position:sticky; background:#fff; }
.sticky-0{ left:0; z-index:80; }
.sticky-1{ left:260px; z-index:79; }
.sticky-2{ left:410px; z-index:78; }
.sticky-3{ left:550px; z-index:77; }

.client-row td{ font-weight:900; background:#f7f9ff; }
.subtotal-row td{ background:#fbfbfb; height:10px; }

.product-name{ padding-left:24px; }
.subrow-tag{ font-weight:700; color:#666; margin-left:10px; }

.toggle{
  margin-right:10px;
  border:1px solid #c9c9c9;
  border-radius:6px;
  padding:2px 8px;
  cursor:pointer;
  font-weight:900;
}

.product-row.is-hidden{ display:none; }

.editable{
  background:#fffef2;
  outline: none;
}
.editable:focus{ box-shadow: inset 0 0 0 2px rgba(47,85,151,.35); }

.saved-flash{ animation: flash .5s ease; }
@keyframes flash{ from{ background:#dbe5f7; } to{ background:#fffef2; } }

.auto-proj{
  background:#f3f6ff;
  color:#2f5597;
  font-weight:900;
}

.is-current-week{ background:#dbe5f7 !important; }

.ppu-readonly{
  background:#eef3ff;
  font-weight:900;
  color:#1c3f7a;
}

/* ===== Charts ===== */
.charts-card{
  margin-top:10px;
  background:#fff;
  border:1px solid #d0d7e2;
  border-radius:8px;
  padding:12px;
}

.charts-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.charts-controls{
  display:flex;
  gap:10px;
  margin-top:8px;
}
.charts-controls label{ font-size:12px; font-weight:900; display:block; margin-bottom:4px; color:#444; }
.charts-controls select{
  padding:8px 10px;
  border:1px solid #c9c9c9;
  border-radius:8px;
}

.chart-hint{ margin-top:8px; font-size:12px; color:#666; }

.charts-grid{
  margin-top:10px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
.chart-box{
  border:1px solid #e3e8f2;
  border-radius:10px;
  padding:10px;
  overflow:hidden;
}
canvas{ width:100%; }
