*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',sans-serif;background:#F1F5F9;height:100vh;overflow:hidden;display:flex}
/* ============================================================
   Contraste forzado en formularios (fix selects que se mimetizan
   con el fondo en modo claro/oscuro del SO). Aplica a todos los
   <select>, <option>, <input> y <textarea> del sistema, sin
   importar la preferencia del sistema operativo del usuario.
   ============================================================ */
html { color-scheme: light; }
select, option, input, textarea {
  color-scheme: light !important;
  background-color: #ffffff;
  color: #1e293b; /* slate-800 */
}
select:disabled, input:disabled, textarea:disabled {
  background-color: #f1f5f9; /* slate-100 */
  color: #475569; /* slate-600 */
}
select option { background-color: #ffffff; color: #1e293b; }
select option:checked { background-color: #dbeafe; color: #1e3a8a; }
.material-symbols-outlined{font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24}
.fill-1{font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24}
.sidebar{width:250px;background:#1a2744;color:white;display:flex;flex-direction:column;flex-shrink:0;transition:width .3s;overflow:hidden;z-index:50}
.sidebar.collapsed{width:68px}
.sidebar.collapsed .nav-label,.sidebar.collapsed .sidebar-header-text,.sidebar.collapsed .sidebar-footer-text,.sidebar.collapsed .nav-section{display:none}
.sidebar.collapsed .nav-item{justify-content:center;padding-left:0;padding-right:0}
.sidebar.collapsed .sidebar-logo{justify-content:center}
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 18px;border-radius:8px;margin:1px 10px;cursor:pointer;transition:all .15s;color:rgba(255,255,255,.55);font-size:12.5px;font-weight:500;white-space:nowrap}
.nav-item:hover{background:rgba(255,255,255,.08);color:rgba(255,255,255,.9)}
.nav-item.active{background:rgba(91,142,194,.2);color:#5B8EC2;font-weight:600}
.nav-item .material-symbols-outlined{font-size:20px;flex-shrink:0}
.nav-item.active .material-symbols-outlined{font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24}
.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.top-bar{height:60px;background:white;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 28px;flex-shrink:0}
.content-area{flex:1;overflow-y:auto;padding:22px 28px}
.view{display:none}.view.active{display:block}
.data-table{width:100%;border-collapse:separate;border-spacing:0}
.data-table th{text-align:left;font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;border-bottom:2px solid #e2e8f0;position:sticky;top:0;background:white;z-index:5}
.data-table td{padding:7px 10px;border-bottom:1px solid #e2e8f0;font-size:12px;color:#334155}
.data-table tbody tr:nth-child(even) td{background:#f8fafc}
.data-table tbody tr:nth-child(odd) td{background:#ffffff}
.data-table tr:hover td{background:#eef2ff !important}
.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:9999px;font-size:10px;font-weight:600;white-space:nowrap}
.stat-card{background:white;border-radius:14px;border:1px solid #e2e8f0;padding:18px;display:flex;flex-direction:column;gap:3px}
.stat-card .value{font-size:26px;font-weight:800;line-height:1}
.stat-card .label{font-size:11px;color:#64748b;font-weight:500}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:100;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.modal-overlay.open{opacity:1;pointer-events:auto}
.modal-panel{background:white;border-radius:18px;box-shadow:0 25px 80px rgba(0,0,0,.2);width:94%;max-width:900px;max-height:90vh;overflow-y:auto;transform:translateY(16px);transition:transform .2s}
.modal-overlay.open .modal-panel{transform:translateY(0)}
.content-area::-webkit-scrollbar{width:5px}.content-area::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}
.sem-green-dark{background:#166534;color:white}.sem-green{background:#22c55e;color:white}.sem-green-light{background:#86efac;color:#14532d}.sem-yellow{background:#facc15;color:#713f12}.sem-orange{background:#f97316;color:white}.sem-red{background:#ef4444;color:white}.sem-bordo{background:#881337;color:white}.sem-blue{background:#3b82f6;color:white}
@keyframes pulse-soft{0%,100%{opacity:1}50%{opacity:.6}}.pulse-alert{animation:pulse-soft 1.5s ease-in-out infinite}
.tab-btn{padding:6px 14px;font-size:12px;font-weight:600;border-radius:8px 8px 0 0;cursor:pointer;border:1px solid transparent;border-bottom:none;color:#64748b;background:#f1f5f9}
.tab-btn.active{background:white;color:#2B4C7E;border-color:#e2e8f0}
.tab-content{display:none}.tab-content.active{display:block}
/* Glow actionable buttons */
@keyframes glow-pulse{0%,100%{box-shadow:0 0 4px 0 rgba(43,76,126,.25)}50%{box-shadow:0 0 14px 3px rgba(43,76,126,.45)}}
@keyframes glow-pulse-ok{0%,100%{box-shadow:0 0 4px 0 rgba(22,163,74,.25)}50%{box-shadow:0 0 14px 3px rgba(22,163,74,.45)}}
@keyframes glow-pulse-warn{0%,100%{box-shadow:0 0 4px 0 rgba(217,119,6,.25)}50%{box-shadow:0 0 14px 3px rgba(217,119,6,.45)}}
@keyframes glow-pulse-danger{0%,100%{box-shadow:0 0 4px 0 rgba(220,38,38,.25)}50%{box-shadow:0 0 14px 3px rgba(220,38,38,.45)}}
@keyframes glow-pulse-accent{0%,100%{box-shadow:0 0 4px 0 rgba(91,142,194,.25)}50%{box-shadow:0 0 14px 3px rgba(91,142,194,.45)}}
@keyframes glow-pulse-amber{0%,100%{box-shadow:0 0 4px 0 rgba(217,119,6,.25)}50%{box-shadow:0 0 14px 3px rgba(180,83,9,.4)}}
.btn-glow{animation:glow-pulse 2s ease-in-out infinite;transition:transform .15s,box-shadow .15s}
.btn-glow:hover{animation:none;transform:scale(1.04);box-shadow:0 0 18px 4px rgba(43,76,126,.5)}
.btn-glow:active{transform:scale(.97)}
.btn-glow-ok{animation:glow-pulse-ok 2s ease-in-out infinite;transition:transform .15s,box-shadow .15s}
.btn-glow-ok:hover{animation:none;transform:scale(1.04);box-shadow:0 0 18px 4px rgba(22,163,74,.5)}
.btn-glow-ok:active{transform:scale(.97)}
.btn-glow-warn{animation:glow-pulse-warn 2s ease-in-out infinite;transition:transform .15s,box-shadow .15s}
.btn-glow-warn:hover{animation:none;transform:scale(1.04);box-shadow:0 0 18px 4px rgba(217,119,6,.5)}
.btn-glow-warn:active{transform:scale(.97)}
.btn-glow-danger{animation:glow-pulse-danger 2s ease-in-out infinite;transition:transform .15s,box-shadow .15s}
.btn-glow-danger:hover{animation:none;transform:scale(1.04);box-shadow:0 0 18px 4px rgba(220,38,38,.5)}
.btn-glow-danger:active{transform:scale(.97)}
.btn-glow-accent{animation:glow-pulse-accent 2s ease-in-out infinite;transition:transform .15s,box-shadow .15s}
.btn-glow-accent:hover{animation:none;transform:scale(1.04);box-shadow:0 0 18px 4px rgba(91,142,194,.5)}
.btn-glow-accent:active{transform:scale(.97)}
.btn-glow-amber{animation:glow-pulse-amber 2s ease-in-out infinite;transition:transform .15s,box-shadow .15s}
.btn-glow-amber:hover{animation:none;transform:scale(1.04);box-shadow:0 0 18px 4px rgba(180,83,9,.45)}
.btn-glow-amber:active{transform:scale(.97)}
/* Subtle glow for outline/secondary buttons */
@keyframes glow-pulse-subtle{0%,100%{box-shadow:0 0 2px 0 rgba(91,142,194,.15)}50%{box-shadow:0 0 10px 2px rgba(91,142,194,.3)}}
.btn-glow-subtle{animation:glow-pulse-subtle 2.5s ease-in-out infinite;transition:transform .15s,box-shadow .15s}
.btn-glow-subtle:hover{animation:none;transform:scale(1.03);box-shadow:0 0 14px 3px rgba(91,142,194,.4)}
.btn-glow-subtle:active{transform:scale(.97)}
/* Subtle glow for inline edit/delete icons */
.btn-icon-glow{transition:all .15s}
.btn-icon-glow:hover{transform:scale(1.2);filter:drop-shadow(0 0 6px currentColor)}
/* Toast */
.toast-container{position:fixed;top:18px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{padding:10px 18px;border-radius:10px;font-size:12px;font-weight:600;color:white;pointer-events:auto;opacity:0;transform:translateX(40px);transition:all .3s ease;box-shadow:0 4px 20px rgba(0,0,0,.15)}
.toast.show{opacity:1;transform:translateX(0)}
.toast.success{background:#16A34A}
.toast.error{background:#DC2626}
.toast.info{background:#2B4C7E}
/* Maestro card clickable */
.maestro-card{cursor:pointer;transition:all .15s}
.maestro-card:hover{border-color:#5B8EC2;box-shadow:0 2px 12px rgba(43,76,126,.12)}
/* === NUEVO indicators (legacy, kept so existing markup keeps working) === */
.nuevo-badge{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:800;background:#0EA5E9;color:white;letter-spacing:.03em;text-transform:uppercase;line-height:1.4;vertical-align:middle;margin-left:4px}
/* === V5 indicators === */
.v5-badge{display:inline-flex;align-items:center;gap:2px;padding:1px 5px;border-radius:4px;font-size:8px;font-weight:800;background:#0EA5E9;color:white;letter-spacing:.05em;line-height:1.3;vertical-align:middle;margin-left:4px;white-space:nowrap;flex-shrink:0}
.v5-badge-col{display:inline-flex;align-items:center;padding:0 4px;border-radius:3px;font-size:7px;font-weight:800;background:#0EA5E9;color:white;letter-spacing:.04em;line-height:1.2;vertical-align:middle;margin-left:3px}
.nav-item.has-v5{border:1px dashed #0EA5E9}
.v5-legend{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#ECFEFF;border:1px solid #67E8F9;border-radius:8px;color:#0E7490;font-size:10px;font-weight:600}
.v5-legend .material-symbols-outlined{font-size:14px}
/* Columnas angostas (V5) */
.data-table th.col-narrow,.data-table td.col-narrow{width:1%;white-space:nowrap;padding-left:6px;padding-right:6px}
.data-table th.col-fecha,.data-table td.col-fecha{width:1%;white-space:nowrap;padding-left:6px;padding-right:6px;font-size:10px;color:#475569}
.data-table th.col-abbr,.data-table td.col-abbr{width:1%;white-space:nowrap;padding-left:6px;padding-right:6px;text-transform:uppercase;font-size:10px}
/* rc26 02-jun: columnas ultra-compactas (1 ícono / 1 dígito / 2-3 letras).
   Padding más chico que col-narrow para ganar espacio horizontal en el listado. */
.data-table th.col-tiny,.data-table td.col-tiny{width:1%;white-space:nowrap;padding-left:3px;padding-right:3px;text-align:center;font-size:10px}
.status-chip{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:18px;padding:0 6px;border-radius:4px;font-size:10px;font-weight:800;font-family:'SF Mono',Menlo,monospace;letter-spacing:.02em}
.status-chip.st-t{background:#fef3c7;color:#92400e}
.status-chip.st-rear{background:#fce7f3;color:#9d174d}
.status-chip.st-r{background:#fee2e2;color:#991b1b}
.status-chip.st-ctrl{background:#e0e7ff;color:#3730a3}
.status-chip.st-as{background:#dbeafe;color:#1e40af}
.status-chip.st-f{background:#dcfce7;color:#166534}
.status-chip.st-v{background:#ccfbf1;color:#115e59}
.status-chip.st-se{background:#f1f5f9;color:#475569}
.status-chip.st-qrx{background:#dbeafe;color:#1d4ed8}
/* rc28 02-jun: chip neutro — el cliente pidió quitar los colores por status. */
.status-chip.st-neutral{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}
.susp-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;transition:transform .15s;border:1px solid transparent}
.susp-icon .material-symbols-outlined{font-size:16px}
.susp-icon:hover{transform:scale(1.15)}
/* rc26 02-jun: estados visuales bien distintos para con/sin plazo. */
.susp-con-plazo{background:#dbeafe;color:#1e40af;border-color:#3b82f6}
.susp-sin-plazo{background:#e2e8f0;color:#334155;border-color:#94a3b8;border-style:dashed}
/* .plazo-x: chip compacto de "plazo vencido" — solo ícono X, sin texto.
   Pedido cliente 21-may #3: reducir ancho de la columna PZO. */
.plazo-x{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:#881337;color:white;animation:pulse-soft 1.4s ease-in-out infinite}
.plazo-x .material-symbols-outlined{font-size:16px;margin:0}
tr.row-ingreso-vencido td{background:#fff !important}
/* Semaforo full-row backgrounds */
tr.sem-row-bordo td{background:#fecdd3 !important;color:#881337}
tr.sem-row-red td{background:#fecaca !important;color:#7f1d1d}
tr.sem-row-orange td{background:#fed7aa !important;color:#9a3412}
tr.sem-row-yellow td{background:#fef08a !important;color:#854d0e}
tr.sem-row-green-light td{background:#bbf7d0 !important;color:#166534}
tr.sem-row-green td{background:#86efac !important;color:#14532d}
tr.sem-row-green-dark td{background:#22c55e !important;color:white}
tr.sem-row-blue td{background:#bfdbfe !important;color:#1e3a8a}
tr.sem-row-bordo:hover td{background:#fda4af !important}
tr.sem-row-red:hover td{background:#fca5a5 !important}
tr.sem-row-orange:hover td{background:#fdba74 !important}
tr.sem-row-yellow:hover td{background:#fde047 !important}
tr.sem-row-green-light:hover td{background:#86efac !important}
tr.sem-row-green:hover td{background:#4ade80 !important}
tr.sem-row-green-dark:hover td{background:#16a34a !important}
tr.sem-row-blue:hover td{background:#93c5fd !important}
/* === CD desestimado === */
.cd-deprecated{opacity:.3 !important;pointer-events:none;filter:grayscale(.3)}
.cd-deprecated *{pointer-events:none}
.cd-deprecated-menu{opacity:.3;text-decoration:line-through;-webkit-text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:rgba(255,255,255,.6);pointer-events:none}
.cd-deprecated-menu .v5-badge,.cd-deprecated-menu .nuevo-badge{display:none}
/* === Chat lateral interno === */
.chat-panel{width:240px;background:#fff;border-left:1px solid #e2e8f0;display:flex;flex-direction:column;flex-shrink:0;z-index:40;box-shadow:-2px 0 8px rgba(0,0,0,.03)}
.chat-head{padding:10px 12px;border-bottom:1px solid #e2e8f0;background:#1a2744;color:white;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.chat-head h3{font-size:12px;font-weight:700;display:flex;align-items:center;gap:6px}
.chat-head .badge-int{font-size:8px;font-weight:700;background:#22c55e;color:white;padding:1px 5px;border-radius:4px;letter-spacing:.03em}
.chat-tabs{display:flex;border-bottom:1px solid #e2e8f0;flex-shrink:0}
.chat-tab{flex:1;padding:8px 6px;font-size:10px;font-weight:600;color:#64748b;cursor:pointer;text-align:center;border-bottom:2px solid transparent;transition:all .15s}
.chat-tab.active{color:#2B4C7E;border-bottom-color:#2B4C7E;background:#f8fafc}
.chat-tab:hover{background:#f1f5f9}
.chat-list{flex:1;overflow-y:auto;min-height:0}
.chat-list::-webkit-scrollbar{width:4px}.chat-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}
.chat-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .15s}
.chat-item:hover{background:#f8fafc}
.chat-item.active{background:#eff6ff}
.chat-avatar{width:30px;height:30px;border-radius:50%;background:#5B8EC2;color:white;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;position:relative}
.chat-avatar.dept{background:#2B4C7E;border-radius:8px}
.chat-avatar .online-dot{position:absolute;bottom:0;right:0;width:8px;height:8px;border-radius:50%;background:#22c55e;border:1.5px solid white}
.chat-item-info{flex:1;min-width:0}
.chat-item-name{font-size:10.5px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-item-preview{font-size:9.5px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.chat-item-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}
.chat-item-time{font-size:9px;color:#94a3b8}
.chat-unread{background:#DC2626;color:white;font-size:9px;font-weight:700;min-width:16px;height:14px;padding:0 4px;border-radius:7px;display:flex;align-items:center;justify-content:center}
.chat-conv{flex:1;display:flex;flex-direction:column;min-height:0;background:#f8fafc}
.chat-conv-head{padding:8px 10px;border-bottom:1px solid #e2e8f0;background:white;display:flex;align-items:center;gap:8px;flex-shrink:0}
.chat-conv-back{cursor:pointer;color:#64748b}
.chat-conv-messages{flex:1;overflow-y:auto;padding:10px 8px;display:flex;flex-direction:column;gap:6px;min-height:0}
.chat-conv-messages::-webkit-scrollbar{width:4px}.chat-conv-messages::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}
.chat-msg{max-width:82%;padding:5px 9px;border-radius:10px;font-size:10.5px;line-height:1.35;word-wrap:break-word;animation:msg-in .25s ease}
@keyframes msg-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.chat-msg.in{background:white;border:1px solid #e2e8f0;color:#1e293b;align-self:flex-start;border-bottom-left-radius:3px}
.chat-msg.out{background:#2B4C7E;color:white;align-self:flex-end;border-bottom-right-radius:3px}
.chat-msg-time{font-size:8.5px;opacity:.7;margin-top:2px;display:block}
.chat-msg-author{font-size:9px;font-weight:700;color:#2B4C7E;margin-bottom:1px}
.chat-input-row{padding:8px;border-top:1px solid #e2e8f0;background:white;display:flex;gap:6px;align-items:center;flex-shrink:0}
.chat-input{flex:1;height:30px;padding:0 10px;border:1px solid #e2e8f0;border-radius:15px;font-size:11px;font-family:inherit;background:#f8fafc}
.chat-input:focus{outline:none;border-color:#5B8EC2;background:white}
.chat-send{width:30px;height:30px;border-radius:50%;background:#2B4C7E;color:white;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;transition:transform .15s}
.chat-send:hover{transform:scale(1.08)}
.chat-pulse{animation:pulse-soft 1.5s ease-in-out infinite}

/* FAB para reabrir chat */
.chat-fab{position:fixed;right:18px;bottom:18px;width:52px;height:52px;border-radius:50%;background:#2B4C7E;color:white;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;box-shadow:0 6px 20px rgba(43,76,126,.45);transition:transform .15s,box-shadow .15s;z-index:60}
.chat-fab:hover{transform:scale(1.08);box-shadow:0 8px 26px rgba(43,76,126,.55)}
.chat-fab .material-symbols-outlined{font-size:26px}
.chat-fab-badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#DC2626;color:white;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid white}
.chat-fab-badge.hidden,.chat-fab.hidden{display:none}
.chat-panel.hidden{display:none}

/* Laravel/Blade additions */
[v-cloak]{display:none}
.is-htmx-indicator{display:none}

/* ============================================================
   Checklist (tab Check List por expediente). El plugin
   @tailwindcss/forms le aplica al <select> un padding nativo
   (py-2 pr-10) que rompe la altura compacta h-7 de la fila.
   Forzamos un padding y line-height acordes a la fila de 28px.
   ============================================================ */
select.cl-resultado,
select#checklistTipoSelect{
  height:28px;
  line-height:1.2;
  padding:2px 24px 2px 8px;
  font-size:11px;
  background-position:right 6px center;
  background-size:14px 14px;
}
input.cl-comentario{
  height:28px;
  line-height:1.2;
  padding:2px 8px;
  font-size:11px;
}

/* ============================================================
   rc29 03-jun: selectores compactos de tamaño de imagen
   (Full / Miniatura) en la carga de adjuntos de actividades.
   @tailwindcss/forms pisa el padding del <select> con valores
   gigantes (py-2 pr-10) → el texto queda fuera del viewport
   cuando la altura es chica. Mismo workaround que cl-resultado.
   ============================================================ */
select.js-adv-upload-size,
select.js-adv-adj-size,
select.js-upload-size,
select.js-adj-size,
select.js-av2-upload-size,
select.js-av2-adj-size{
  /* rc30 03-jun: ampliamos altura/ancho mínimos para que entren las
     etiquetas más descriptivas ("Completo (1/fila)" en vez de "Completo"). */
  height:26px;
  min-width:130px;
  line-height:1.2;
  padding:2px 22px 2px 7px;
  font-size:11px;
  font-weight:600;
  color:#1e293b;
  background-color:#fff;
  background-position:right 6px center;
  background-size:12px 12px;
  border:1px solid #cbd5e1;
  border-radius:4px;
}
select.js-adv-upload-size:hover,
select.js-upload-size:hover,
select.js-av2-upload-size:hover{
  border-color:#ef4444;
  background-color:#fff7ed;
}

/* ============================================================
   Widget "Capacidad & carga" — tabla estilo Excel (pedido 21-may).
   Columnas: Oper · ASIG · CAP · P/REC · % con celdas coloreadas
   por umbral, similar al spreadsheet que usa el cliente.
   ============================================================ */
.capw-table{width:100%;border-collapse:separate;border-spacing:0;font-family:'Inter',sans-serif}
.capw-table thead th{background:#dbeafe;color:#1e3a8a;font-size:9.5px;font-weight:800;padding:5px 6px;border:1px solid #93c5fd;text-align:center;text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0;z-index:1}
.capw-table thead th.capw-th-name{text-align:left;padding-left:10px}
.capw-table tbody td{padding:4px 6px;border:1px solid #cbd5e1;font-size:11px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.capw-table tbody tr:hover td{background:#f1f5f9 !important}
.capw-name{text-align:left !important;padding-left:10px !important;font-weight:700;color:#0f172a;text-transform:uppercase;letter-spacing:.02em}
.capw-name-link{color:#2563eb;text-decoration:underline;cursor:pointer}
.capw-name-link:hover{color:#1d4ed8;text-decoration:underline}
.capw-num{font-family:'SF Mono',Menlo,monospace}
.capw-cap{background:#f3f4f6;color:#475569}
/* Celdas con color según umbral — coinciden con el verde/amarillo/naranja/rojo del Excel del cliente */
.capw-c-green-dark{background:#16a34a;color:white}
.capw-c-green{background:#86efac;color:#14532d}
.capw-c-yellow{background:#fde68a;color:#713f12}
.capw-c-orange{background:#fb923c;color:white}
.capw-c-red{background:#dc2626;color:white}

/* ============================================================
   Checklist resultado — 3 estados con color (pedido 22-may #2)
   Pendiente · Ok (verde) · ! (rojo)
   ============================================================ */
select.cl-resultado{transition:background-color .15s,color .15s}
select.cl-resultado:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}
select.cl-resultado-pendiente:not(:disabled){background:#f8fafc;color:#475569}
select.cl-resultado-ok:not(:disabled){background:#16a34a;color:white;border-color:#15803d}
select.cl-resultado-alerta:not(:disabled){background:#dc2626;color:white;border-color:#b91c1c}
/* rc29 03-jun: N/A — neutro (gris claro), para distinguir de Pendiente. */
select.cl-resultado-na:not(:disabled){background:#e2e8f0;color:#475569;border-color:#cbd5e1;font-style:italic}
input.cl-comentario:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}

/* ============================================================
   Pedido cliente 22-may #4: reubicar los FABs (chat + capacidad)
   al lado del buscador en la topbar. Los FABs flotantes originales
   quedan ocultos por CSS (el código que los referencia sigue vivo,
   solo no se muestran). Los handlers se invocan desde los botones
   nuevos de topbar.blade.php (#topbarChatBtn / #topbarCapacidadBtn).
   ============================================================ */
#chatFab, #capacidadFab, #capacidadCtrlFab { display: none !important; }

/* Columna SEC del widget capacidad — pedido 22-may #2 */
.capw-c-sec{background:#ede9fe;color:#5b21b6;font-weight:700}
