/* /Components/Herramientas/ComChat.razor.rz.scp.css */
/* =============================================
   ComChat – Modern Chat UI Styles
   ============================================= */

.chat-container[b-5hset21w4q] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 500px;
    max-height: 80vh;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 16px;
    overflow: hidden;
    background: #f8f9fb;
    font-family: inherit;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}

/* ---- Header ---- */
.chat-header[b-5hset21w4q] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 50%, #1e40af 100%);
    color: white;
    position: relative;
    z-index: 2;
}

.chat-header[b-5hset21w4q]::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    right: 0;
    height: 8px;
    background: linear-gradient(to bottom, rgba(0,0,0,0.06), transparent);
    pointer-events: none;
}

.chat-header-info[b-5hset21w4q] {
    display: flex;
    align-items: center;
    gap: 14px;
}

.chat-header-icon-wrap[b-5hset21w4q] {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.chat-header-icon[b-5hset21w4q] {
    font-size: 22px !important;
    color: white;
}

.chat-header-title[b-5hset21w4q] {
    color: white !important;
    font-weight: 700 !important;
    margin: 0 !important;
    line-height: 1.3;
    font-size: 1.05rem;
    letter-spacing: -0.01em;
}

.chat-header-sub[b-5hset21w4q] {
    color: rgba(255,255,255,0.75) !important;
    font-size: 0.73rem;
    display: flex;
    align-items: center;
    gap: 6px;
}

.chat-badge[b-5hset21w4q] {
    background: #ef4444;
    color: white;
    font-size: 0.65rem;
    font-weight: 600;
    padding: 1px 8px;
    border-radius: 10px;
    animation: badgePulse-b-5hset21w4q 2s ease-in-out infinite;
}

@keyframes badgePulse-b-5hset21w4q {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

.chat-header-actions[b-5hset21w4q] {
    display: flex;
    gap: 4px;
}

.chat-header-btn[b-5hset21w4q],
.chat-header-btn.e-btn[b-5hset21w4q] {
    color: white !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    min-width: 38px;
    height: 38px;
    border-radius: 10px !important;
    transition: background 0.2s ease, transform 0.15s ease;
}

.chat-header-btn:hover[b-5hset21w4q] {
    background: rgba(255,255,255,0.18) !important;
    transform: scale(1.05);
}

.chat-header-btn.active[b-5hset21w4q] {
    background: rgba(255,255,255,0.22) !important;
}

/* ---- Participantes ---- */
.chat-participantes[b-5hset21w4q] {
    padding: 12px 16px;
    background: linear-gradient(to bottom, #eff6ff, #f8f9fb);
    border-bottom: 1px solid #dbeafe;
    animation: slideDown-b-5hset21w4q 0.2s ease;
}

@keyframes slideDown-b-5hset21w4q {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

.chat-participantes-title[b-5hset21w4q] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.chat-participantes-list[b-5hset21w4q] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.chat-participant-card[b-5hset21w4q] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px 6px 6px;
    background: white;
    border-radius: 24px;
    border: 1px solid #e2e8f0;
    transition: box-shadow 0.2s;
}

.chat-participant-card:hover[b-5hset21w4q] {
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.chat-participant-avatar[b-5hset21w4q] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, #94a3b8, #64748b);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 700;
    position: relative;
}

.chat-participant-avatar.online[b-5hset21w4q]::after {
    content: '';
    position: absolute;
    bottom: -1px;
    right: -1px;
    width: 10px;
    height: 10px;
    background: #22c55e;
    border-radius: 50%;
    border: 2px solid white;
}

.chat-participant-name[b-5hset21w4q] {
    font-size: 0.82rem;
    font-weight: 500;
    color: #334155;
}

.chat-participant-you[b-5hset21w4q] {
    font-size: 0.68rem;
    color: #2563eb;
    font-weight: 600;
}

/* ---- Messages area ---- */
.chat-messages[b-5hset21w4q] {
    flex: 1;
    overflow-y: auto;
    padding: 20px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    scroll-behavior: smooth;
    background: #f8f9fb;
}

.chat-loading[b-5hset21w4q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-height: 200px;
    gap: 12px;
}

.chat-loading-text[b-5hset21w4q] {
    font-size: 0.85rem;
    color: #94a3b8;
    animation: pulse-b-5hset21w4q 1.5s ease-in-out infinite;
}

@keyframes pulse-b-5hset21w4q {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

.chat-empty[b-5hset21w4q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-height: 200px;
    gap: 4px;
}

.chat-empty-icon[b-5hset21w4q] {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
}

.chat-empty-icon .e-icons[b-5hset21w4q] {
    font-size: 32px;
    color: #60a5fa;
}

.chat-empty-icon.error[b-5hset21w4q] {
    background: linear-gradient(135deg, #fef2f2, #fee2e2);
}

.chat-empty-icon.error .e-icons[b-5hset21w4q] {
    color: #ef4444;
}

.chat-empty-title[b-5hset21w4q] {
    font-size: 1rem;
    font-weight: 600;
    color: #334155;
    margin: 0;
}

.chat-empty-text[b-5hset21w4q] {
    font-size: 0.85rem;
    color: #94a3b8;
    margin: 0;
}

.chat-empty-text.error[b-5hset21w4q] {
    color: #ef4444;
}

/* ---- Date divider ---- */
.chat-date-divider[b-5hset21w4q] {
    text-align: center;
    margin: 16px 0 10px;
    position: relative;
}

.chat-date-divider[b-5hset21w4q]::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 1px;
    background: linear-gradient(to right, transparent, #cbd5e1, transparent);
}

.chat-date-divider span[b-5hset21w4q] {
    position: relative;
    background: #f8f9fb;
    padding: 2px 14px;
    font-size: 0.7rem;
    color: #94a3b8;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-radius: 10px;
}

/* ---- Bubble rows ---- */
.chat-bubble-row[b-5hset21w4q] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    animation: fadeInUp-b-5hset21w4q 0.25s ease;
}

@keyframes fadeInUp-b-5hset21w4q {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

.chat-bubble-right[b-5hset21w4q] {
    justify-content: flex-end;
}

.chat-bubble-left[b-5hset21w4q] {
    justify-content: flex-start;
}

.chat-avatar[b-5hset21w4q] {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: linear-gradient(135deg, #94a3b8, #64748b);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    margin-bottom: 2px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

/* ---- Bubbles ---- */
.chat-bubble[b-5hset21w4q] {
    max-width: 70%;
    padding: 10px 14px;
    border-radius: 18px;
    position: relative;
    word-break: break-word;
    transition: box-shadow 0.2s;
}

.chat-bubble:hover[b-5hset21w4q] {
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

.bubble-mine[b-5hset21w4q] {
    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: white;
    border-bottom-right-radius: 6px;
    box-shadow: 0 2px 8px rgba(37,99,235,0.2);
}

.bubble-other[b-5hset21w4q] {
    background: white;
    color: #1e293b;
    border: 1px solid #e2e8f0;
    border-bottom-left-radius: 6px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}

.chat-bubble-author[b-5hset21w4q] {
    font-size: 0.7rem;
    font-weight: 700;
    color: #2563eb;
    margin-bottom: 2px;
}

.chat-bubble-content[b-5hset21w4q] {
    font-size: 0.88rem;
    line-height: 1.5;
    white-space: pre-wrap;
}

.chat-bubble-footer[b-5hset21w4q] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    margin-top: 4px;
}

.chat-bubble-time[b-5hset21w4q] {
    font-size: 0.63rem;
    opacity: 0.6;
    font-weight: 500;
}

/* Read status double-check */
.chat-read-status[b-5hset21w4q] {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    position: relative;
    width: 18px;
}

.chat-read-status .e-icons[b-5hset21w4q] {
    font-size: 12px;
}

.chat-read-status .chat-double-check[b-5hset21w4q] {
    position: absolute;
    left: 5px;
}

.chat-read-status.read .e-icons[b-5hset21w4q] {
    color: #7dd3fc !important;
}

.chat-read-status.unread .e-icons[b-5hset21w4q] {
    opacity: 0.45;
}

/* ---- Attachments ---- */
.chat-attachments[b-5hset21w4q] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
}

.chat-attachment-link[b-5hset21w4q] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 10px;
    background: rgba(255,255,255,0.12);
    text-decoration: none;
    color: inherit;
    transition: background 0.2s, transform 0.15s;
}

.chat-attachment-link:hover[b-5hset21w4q] {
    background: rgba(255,255,255,0.22);
    transform: translateX(2px);
}

.bubble-other .chat-attachment-link[b-5hset21w4q] {
    background: #f1f5f9;
}

.bubble-other .chat-attachment-link:hover[b-5hset21w4q] {
    background: #e2e8f0;
}

.chat-attachment-icon[b-5hset21w4q] {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: rgba(255,255,255,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.bubble-other .chat-attachment-icon[b-5hset21w4q] {
    background: #dbeafe;
}

.chat-attachment-icon .e-icons[b-5hset21w4q] {
    font-size: 16px;
}

.bubble-other .chat-attachment-icon .e-icons[b-5hset21w4q] {
    color: #2563eb;
}

.chat-attachment-info[b-5hset21w4q] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}

.chat-attachment-name[b-5hset21w4q] {
    font-size: 0.78rem;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-attachment-size[b-5hset21w4q] {
    font-size: 0.65rem;
    opacity: 0.6;
}

.chat-attachment-dl[b-5hset21w4q] {
    font-size: 14px;
    opacity: 0.4;
    transition: opacity 0.2s;
}

.chat-attachment-link:hover .chat-attachment-dl[b-5hset21w4q] {
    opacity: 0.8;
}

/* ---- Pending files chips ---- */
.chat-pending-files[b-5hset21w4q] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
    animation: fadeInUp-b-5hset21w4q 0.2s ease;
}

.chat-file-chip[b-5hset21w4q] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px 6px 10px;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    border: 1px solid #bfdbfe;
    border-radius: 10px;
    font-size: 0.76rem;
    color: #1e40af;
    transition: border-color 0.2s;
}

.chat-file-chip:hover[b-5hset21w4q] {
    border-color: #93c5fd;
}

.chat-file-chip .e-icons[b-5hset21w4q] {
    font-size: 13px;
    color: #3b82f6;
}

.chat-file-chip-name[b-5hset21w4q] {
    font-weight: 600;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-file-chip-size[b-5hset21w4q] {
    font-size: 0.68rem;
    opacity: 0.6;
}

.chat-file-remove[b-5hset21w4q] {
    background: none;
    border: none;
    cursor: pointer;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    transition: background 0.2s, color 0.2s;
    padding: 0;
}

.chat-file-remove:hover[b-5hset21w4q] {
    background: #fee2e2;
    color: #ef4444;
}

.chat-file-remove .e-icons[b-5hset21w4q] {
    font-size: 10px;
}

/* ---- Input area ---- */
.chat-input-area[b-5hset21w4q] {
    padding: 12px 16px 14px;
    background: white;
    border-top: 1px solid #e2e8f0;
}

.chat-input-row[b-5hset21w4q] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.chat-input-field[b-5hset21w4q] {
    flex: 1;
}

.chat-input-field .e-input-group[b-5hset21w4q] {
    border-radius: 12px !important;
    background: #f1f5f9 !important;
    border-color: transparent !important;
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
}

.chat-input-field .e-input-group:hover[b-5hset21w4q] {
    background: #e2e8f0 !important;
}

.chat-input-field .e-input-group.e-input-focus[b-5hset21w4q] {
    background: white !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.12) !important;
}

.chat-attach-btn[b-5hset21w4q] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 10px;
    background: #f1f5f9;
    color: #64748b;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s, color 0.2s;
    padding: 0;
}

.chat-attach-btn:hover[b-5hset21w4q] {
    background: #e2e8f0;
    color: #2563eb;
}

.chat-attach-btn .e-icons[b-5hset21w4q] {
    font-size: 16px;
}

.chat-send-btn.e-btn[b-5hset21w4q] {
    min-width: 42px;
    height: 42px;
    border-radius: 12px !important;
    background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
    box-shadow: 0 2px 8px rgba(37,99,235,0.3);
    transition: transform 0.15s, box-shadow 0.2s;
}

.chat-send-btn.e-btn:hover:not(:disabled)[b-5hset21w4q] {
    transform: scale(1.05);
    box-shadow: 0 4px 14px rgba(37,99,235,0.4);
}

.chat-send-btn.e-btn:disabled[b-5hset21w4q] {
    opacity: 0.4;
    box-shadow: none;
}

/* ---- Scrollbar ---- */
.chat-messages[b-5hset21w4q]::-webkit-scrollbar {
    width: 5px;
}

.chat-messages[b-5hset21w4q]::-webkit-scrollbar-track {
    background: transparent;
}

.chat-messages[b-5hset21w4q]::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}

.chat-messages[b-5hset21w4q]::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}
/* /Components/Herramientas/ComNotasProyecto.razor.rz.scp.css */
.notas-container[b-spvuz2yi26] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
}

/* ── Header ── */
.notas-header[b-spvuz2yi26] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.7rem 0.9rem;
    background: linear-gradient(135deg, #0f766e 0%, #14b8a6 100%);
    color: #fff;
    flex-shrink: 0;
}

.notas-header-info[b-spvuz2yi26] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.notas-header-icon-wrap[b-spvuz2yi26] {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
}

.notas-header-icon[b-spvuz2yi26] {
    font-size: 16px;
    color: #fff;
}

.notas-header-title[b-spvuz2yi26] {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
    color: #fff;
}

.notas-header-sub[b-spvuz2yi26] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.68rem;
    opacity: 0.9;
}

/* ── Body / editor ── */
.notas-body[b-spvuz2yi26] {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.notas-body[b-spvuz2yi26]  .e-richtexteditor {
    border: none !important;
    border-radius: 0 !important;
    height: 100% !important;
    display: flex;
    flex-direction: column;
}

.notas-body[b-spvuz2yi26]  .e-rte-content {
    flex: 1;
    min-height: 0;
}

.notas-loading[b-spvuz2yi26],
.notas-empty[b-spvuz2yi26] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    color: #64748b;
    padding: 1.5rem;
    text-align: center;
}

.notas-empty-icon[b-spvuz2yi26] {
    font-size: 1.8rem;
    color: #cbd5e1;
}

.notas-loading-text[b-spvuz2yi26],
.notas-empty-text[b-spvuz2yi26] {
    margin: 0;
    font-size: 0.82rem;
}

/* ── Footer ── */
.notas-footer[b-spvuz2yi26] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.55rem 0.8rem;
    border-top: 1px solid #e2e8f0;
    background: #f8fafc;
    flex-shrink: 0;
}

.notas-footer-status[b-spvuz2yi26] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 600;
}

.notas-footer-status.ok[b-spvuz2yi26] {
    color: #0f766e;
}

.notas-spin[b-spvuz2yi26] {
    animation: notas-rotate-b-spvuz2yi26 0.8s linear infinite;
}

@keyframes notas-rotate-b-spvuz2yi26 {
    to { transform: rotate(360deg); }
}

.notas-save-btn[b-spvuz2yi26] {
    font-weight: 600;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-5m6n2bxrum] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main[b-5m6n2bxrum] {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.sidebar[b-5m6n2bxrum] {
    /* Updated to match NavMenu gradient start color */
    background-color: #0f172a;
    /* Columna: el menú del rol toma el alto disponible y los enlaces extra de Admin quedan
       debajo en vez de desbordarse fuera de la pantalla. */
    display: flex;
    flex-direction: column;
}

    /* Los menús de rol son componentes propios, así que su raíz no lleva el atributo de scope
       de este archivo: ::deep para alcanzarla. Los dos prefijos conviven (sb-* es el sidebar
       actual, sidebar-container el de los menús que aún no se migraron). */
    .sidebar[b-5m6n2bxrum]  .sb-sidebar,
    .sidebar[b-5m6n2bxrum]  .sidebar-container {
        flex: 1;
        min-height: 0;
    }

.content[b-5m6n2bxrum] {
    flex: 1;
    overflow-y: auto;
}

/* La barra superior y el fondo oscuro sólo existen en móvil; en escritorio se sacan del flujo
   para que .page siga siendo sidebar + contenido. */
.topbar-movil[b-5m6n2bxrum] {
    display: none;
}

.sidebar-backdrop[b-5m6n2bxrum] {
    display: none;
}

/* =====================================================================
   Móvil y tablet en vertical: el menú deja de ocupar sitio y pasa a ser un
   cajón deslizante que se abre desde la barra superior. Antes el sidebar se
   apilaba entero encima del contenido y había que hacer scroll por todo el
   menú (o por toda la lista de proyectos) para llegar a la pantalla.
   ===================================================================== */
@media (max-width: 991.98px) {
    .page[b-5m6n2bxrum] {
        /* Alto fijo: la barra superior queda anclada y el scroll ocurre dentro del contenido.
           dvh evita el salto de la barra de direcciones en iOS/Android. */
        min-height: 0;
        height: 100vh;
        height: 100dvh;
        overflow: hidden;
    }

    /* Por encima del cajón y del fondo oscuro: el mismo botón que abre tiene que poder cerrar,
       si no la única salida sería tocar a ciegas fuera del menú. */
    .topbar-movil[b-5m6n2bxrum] {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        flex-shrink: 0;
        position: relative;
        height: 3.25rem;
        padding: 0 0.65rem;
        background: #0f172a;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        z-index: 1220;
    }

    /* 44x44 es el mínimo táctil recomendado; las barras se dibujan con spans para poder
       animarlas a una "X" cuando el cajón está abierto. */
    .topbar-burger[b-5m6n2bxrum] {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        padding: 0 10px;
        border: 0;
        border-radius: 0.5rem;
        background: rgba(255, 255, 255, 0.08);
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }

        .topbar-burger:active[b-5m6n2bxrum] {
            background: rgba(255, 255, 255, 0.16);
        }

        .topbar-burger span[b-5m6n2bxrum] {
            display: block;
            height: 2px;
            border-radius: 2px;
            background: #e2e8f0;
            transition: transform 0.25s ease, opacity 0.2s ease;
        }

    .page.menu-abierto .topbar-burger span:nth-child(1)[b-5m6n2bxrum] {
        transform: translateY(7px) rotate(45deg);
    }

    .page.menu-abierto .topbar-burger span:nth-child(2)[b-5m6n2bxrum] {
        opacity: 0;
    }

    .page.menu-abierto .topbar-burger span:nth-child(3)[b-5m6n2bxrum] {
        transform: translateY(-7px) rotate(-45deg);
    }

    .topbar-marca[b-5m6n2bxrum] {
        color: #f8fafc;
        font-size: 1.05rem;
        font-weight: 700;
        letter-spacing: 0.02em;
    }

    main[b-5m6n2bxrum] {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .sidebar[b-5m6n2bxrum] {
        position: fixed;
        /* Arranca bajo la barra superior para no tapar el botón que lo cierra. */
        top: 3.25rem;
        left: 0;
        bottom: 0;
        width: min(86vw, 320px);
        z-index: 1210;
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        box-shadow: 8px 0 28px rgba(0, 0, 0, 0.45);
        /* El scroll se queda dentro del menú y no arrastra la página de fondo. */
        overscroll-behavior: contain;
    }

    .page.menu-abierto .sidebar[b-5m6n2bxrum] {
        transform: none;
    }

    .sidebar-backdrop[b-5m6n2bxrum] {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(2, 6, 23, 0.6);
        z-index: 1200;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.25s ease;
    }

    .page.menu-abierto .sidebar-backdrop[b-5m6n2bxrum] {
        opacity: 1;
        pointer-events: auto;
    }
}

/* Sin animación para quien la desactivó en el sistema. */
@media (prefers-reduced-motion: reduce) {
    .sidebar[b-5m6n2bxrum],
    .sidebar-backdrop[b-5m6n2bxrum],
    .topbar-burger span[b-5m6n2bxrum] {
        transition: none;
    }
}

@media (min-width: 992px) {
    .page[b-5m6n2bxrum] {
        flex-direction: row;
    }

    .sidebar[b-5m6n2bxrum] {
        width: 280px;
        height: 100vh;
        position: sticky;
        top: 0;
        flex-shrink: 0;
        box-shadow: 4px 0 24px rgba(0,0,0,0.05);
        z-index: 20;
    }

    main[b-5m6n2bxrum] {
        height: 100vh;
        overflow-y: auto;
    }

    .content[b-5m6n2bxrum] {
        flex: 1;
    }
}

#blazor-error-ui[b-5m6n2bxrum] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-5m6n2bxrum] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* ===== Variables y Base ===== */
.sidebar-container[b-zbtygtje60] {
    display: flex;
    flex-direction: column;
    height: 100%;
    /* Dark Slate with a slight teal tint or just pure dark slate */
    background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
}

/* ===== Collapsible Nav Groups ===== */
.nav-group[b-zbtygtje60] {
    margin: 0.125rem 0.75rem;
}

.nav-group-toggle[b-zbtygtje60] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.04);
    border-radius: 0.625rem;
    color: #94a3b8;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-group-toggle:hover[b-zbtygtje60] {
    background: rgba(255, 255, 255, 0.06);
    color: #f1f5f9;
    border-color: rgba(255, 255, 255, 0.1);
}

.nav-group-toggle.expanded[b-zbtygtje60] {
    background: rgba(20, 184, 166, 0.08); /* Teal tint */
    border-color: rgba(20, 184, 166, 0.15);
    color: #e2e8f0;
}

.nav-group-indicator[b-zbtygtje60] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #475569;
    flex-shrink: 0;
    transition: all 0.2s ease;
}

.nav-group-toggle.expanded .nav-group-indicator[b-zbtygtje60] {
    background: #14b8a6; /* Teal light */
    box-shadow: 0 0 8px rgba(20, 184, 166, 0.4);
}

/* Small icon inside group toggle */
.nav-icon-sm[b-zbtygtje60] {
    display: inline-block;
    width: 0.875rem;
    height: 0.875rem;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    opacity: 0.6;
    transition: opacity 0.2s ease;
}

.nav-group-toggle:hover .nav-icon-sm[b-zbtygtje60],
.nav-group-toggle.expanded .nav-icon-sm[b-zbtygtje60] {
    opacity: 1;
}

.nav-group-label[b-zbtygtje60] {
    flex: 1;
    text-align: left;
}

.nav-group-chevron[b-zbtygtje60] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    color: #475569;
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-group-toggle.expanded .nav-group-chevron[b-zbtygtje60] {
    transform: rotate(90deg);
    color: #14b8a6; /* Teal */
}

/* Collapsible content */
.nav-group-items[b-zbtygtje60] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    padding-left: 0.25rem;
    border-left: 2px solid transparent;
    margin-left: 1rem;
    margin-top: 0;
}

.nav-group-items > *[b-zbtygtje60] {
    overflow: hidden;
}

.nav-group-items.expanded[b-zbtygtje60] {
    grid-template-rows: 1fr;
    margin-top: 0.25rem;
    border-left-color: rgba(20, 184, 166, 0.2); /* Teal border */
}

/* ===== Navigation Sections ===== */
.nav-section[b-zbtygtje60] {
    padding: 0.25rem 0;
}

.nav-section-title[b-zbtygtje60] {
    display: block;
    padding: 0.5rem 1.25rem 0.25rem;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #475569;
}

.nav-divider[b-zbtygtje60] {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.06) 50%, transparent 100%);
    margin: 0.5rem 1rem;
}

/* ===== Nav Items ===== */
.nav-item[b-zbtygtje60] {
    padding: 0.0625rem 0.75rem;
}

.nav-group-items .nav-item[b-zbtygtje60] {
    padding: 0.0625rem 0.375rem;
}

.nav-item[b-zbtygtje60]  .nav-link,
.nav-link[b-zbtygtje60] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    color: #94a3b8;
    background: transparent;
    border: none;
    border-radius: 0.5rem;
    font-size: 0.825rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
    text-align: left;
}

.nav-item[b-zbtygtje60]  .nav-link:hover,
.nav-link:hover[b-zbtygtje60] {
    background: rgba(255, 255, 255, 0.06);
    color: #e2e8f0;
    transform: translateX(2px);
}

.nav-item[b-zbtygtje60]  a.active {
    /* Teal active background */
    background: linear-gradient(135deg, rgba(20, 184, 166, 0.15) 0%, rgba(15, 118, 110, 0.1) 100%);
    color: #ffffff;
    font-weight: 600;
    box-shadow: inset 3px 0 0 #14b8a6; /* Teal left marker */
}

.nav-item[b-zbtygtje60]  a.active .nav-icon {
    filter: brightness(1.4);
}

/* ===== Nav Icons ===== */
.nav-icon[b-zbtygtje60] {
    display: inline-block;
    width: 1.125rem;
    height: 1.125rem;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    opacity: 0.8;
    transition: all 0.2s ease;
}

.nav-item:hover .nav-icon[b-zbtygtje60] {
    opacity: 1;
    transform: scale(1.05);
}

.nav-text[b-zbtygtje60] {
    flex: 1;
}

/* Icon Definitions */
.bi-house-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M12.71 2.29a1 1 0 0 0-1.42 0l-9 9a1 1 0 0 0 0 1.42A1 1 0 0 0 3 13h1v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7h1a1 1 0 0 0 .71-1.71zM9 20v-5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v5zm9 0h-2v-5a3 3 0 0 0-3-3h-4a3 3 0 0 0-3 3v5H6v-7.59l6-6 6 6z'/%3E%3C/svg%3E");
}

.bi-projects-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 16H5V5h14zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7zm4-8h6v2h-6zm0 4h6v2h-6zm0 4h6v2h-6z'/%3E%3C/svg%3E");
}

.bi-approval-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-2-5.83l6.59-6.59L18 9l-8 8-4-4 1.41-1.41L10 14.17z'/%3E%3C/svg%3E");
}

.bi-employees-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0-5-5 5 5 0 0 0 5 5zm0-8a3 3 0 1 1-3 3 3 3 0 0 1 3-3zm9 17v-1a7 7 0 0 0-7-7h-4a7 7 0 0 0-7 7v1h2v-1a5 5 0 0 1 5-5h4a5 5 0 0 1 5 5v1z'/%3E%3C/svg%3E");
}

.bi-engineering-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z'/%3E%3C/svg%3E");
}

.bi-legal-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 2h5v2h-5V4zm-7 0h5v2H5V4zm0 4h5v2H5V8zm7 0h5v2h-5V8zm-7 4h5v2H5v-2zm7 0h5v2h-5v-2zm-7 4h5v2H5v-2zm7 0h5v2h-5v-2z'/%3E%3C/svg%3E");
}

.bi-pm-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M19 3h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E");
}

.bi-quotation-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6zm2-6h8v2H8v-2zm0-3h8v2H8v-2zm0 6h5v2H8v-2z'/%3E%3C/svg%3E");
}

.bi-order-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M18 6h-2c0-2.21-1.79-4-4-4S8 3.79 8 6H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6-2c1.1 0 2 .9 2 2h-4c0-1.1.9-2 2-2zm6 16H6V8h2v2h2V8h4v2h2V8h2v12z'/%3E%3C/svg%3E");
}

.bi-warehouse-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M20 3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H4V5h16v14zM6 7h5v5H6V7zm7 0h5v2h-5V7zm0 3h5v2h-5v-2zm-7 5h12v2H6v-2z'/%3E%3C/svg%3E");
}

.bi-shield-icon[b-zbtygtje60] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M12 22c4.97-1.43 8-6.06 8-10.87V5l-8-3-8 3v6.13c0 4.81 3.03 9.44 8 10.87zm0-2.08c-3.63-1.2-6-4.85-6-8.79V6.31l6-2.25 6 2.25v4.82c0 3.94-2.37 7.59-6 8.79zM11 7h2v5h-2V7zm0 6h2v2h-2v-2z'/%3E%3C/svg%3E");
}

/* ===== Scrollable Area =====
   Siempre visible: en móvil quien esconde el menú es el cajón del layout, no esta caja. */
.nav-scrollable[b-zbtygtje60] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.nav-scrollable[b-zbtygtje60]::-webkit-scrollbar {
    width: 4px;
}

.nav-scrollable[b-zbtygtje60]::-webkit-scrollbar-track {
    background: transparent;
}

.nav-scrollable[b-zbtygtje60]::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
}

.nav-scrollable[b-zbtygtje60]::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.2);
}

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .nav-item[b-zbtygtje60] {
        padding: 0.0625rem 0.6rem;
    }

    .nav-item[b-zbtygtje60]  .nav-link,
    .nav-link[b-zbtygtje60] {
        padding: 0.7rem 0.85rem;
        font-size: 0.9rem;
    }

    .nav-icon[b-zbtygtje60] {
        width: 1.25rem;
        height: 1.25rem;
    }

    .nav-group-toggle[b-zbtygtje60] {
        padding: 0.65rem 0.75rem;
        font-size: 0.85rem;
    }

    .nav-section-title[b-zbtygtje60] {
        padding: 0.6rem 1rem 0.35rem;
        font-size: 0.68rem;
    }
}

/* El desplazamiento lateral del hover se queda pegado tras el toque en táctil. */
@media (hover: none) {
    .nav-item[b-zbtygtje60]  .nav-link:hover,
    .nav-link:hover[b-zbtygtje60] {
        background: transparent;
        color: #94a3b8;
        transform: none;
    }

    .nav-item[b-zbtygtje60]  .nav-link:active,
    .nav-link:active[b-zbtygtje60] {
        background: rgba(255, 255, 255, 0.12);
        color: #e2e8f0;
    }

    /* El enlace activo conserva su marca aunque el navegador lo deje en :hover. */
    .nav-item[b-zbtygtje60]  a.active:hover {
        background: linear-gradient(135deg, rgba(20, 184, 166, 0.15) 0%, rgba(15, 118, 110, 0.1) 100%);
        color: #ffffff;
    }
}
/* /Components/Layout/NavMenuGteOps.razor.rz.scp.css */
/* ===== Variables y Base ===== */
.sidebar-container[b-nj7nizd4k9] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: linear-gradient(180deg, #0f172a 0%, #1a2332 50%, #1e293b 100%);
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    user-select: none;
}

/* ===== Header / Logo ===== */
.sidebar-header[b-nj7nizd4k9] {
    padding: 1.5rem 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(0, 0, 0, 0.15);
}

.logo-container[b-nj7nizd4k9] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.logo-icon[b-nj7nizd4k9] {
    width: 2.5rem;
    height: 2.5rem;
    background: linear-gradient(135deg, #0d9488 0%, #14b8a6 50%, #2dd4bf 100%);
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(20, 184, 166, 0.35), 0 0 0 3px rgba(20, 184, 166, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.logo-icon:hover[b-nj7nizd4k9] {
    transform: scale(1.05);
    box-shadow: 0 6px 20px rgba(20, 184, 166, 0.45), 0 0 0 4px rgba(20, 184, 166, 0.12);
}

.logo-letter[b-nj7nizd4k9] {
    color: white;
    font-size: 1.25rem;
    font-weight: 700;
}

.logo-text[b-nj7nizd4k9] {
    color: white;
    font-size: 1.375rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    background: linear-gradient(135deg, #f1f5f9, #94a3b8);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ===== Collapsible Nav Groups ===== */
.nav-group[b-nj7nizd4k9] {
    margin: 0.125rem 0.75rem;
}

.nav-group-toggle[b-nj7nizd4k9] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.04);
    border-radius: 0.625rem;
    color: #94a3b8;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-group-toggle:hover[b-nj7nizd4k9] {
    background: rgba(255, 255, 255, 0.06);
    color: #f1f5f9;
    border-color: rgba(255, 255, 255, 0.1);
}

.nav-group-toggle.expanded[b-nj7nizd4k9] {
    background: rgba(20, 184, 166, 0.1);
    border-color: rgba(20, 184, 166, 0.2);
    color: #e2e8f0;
    box-shadow: 0 2px 8px rgba(20, 184, 166, 0.08);
}

.nav-group-indicator[b-nj7nizd4k9] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #475569;
    flex-shrink: 0;
    transition: all 0.2s ease;
}

.nav-group-toggle.expanded .nav-group-indicator[b-nj7nizd4k9] {
    background: #14b8a6;
    box-shadow: 0 0 8px rgba(20, 184, 166, 0.4);
}

/* Small icon inside group toggle */
.nav-icon-sm[b-nj7nizd4k9] {
    display: inline-block;
    width: 0.875rem;
    height: 0.875rem;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    opacity: 0.6;
    transition: opacity 0.2s ease;
}

.nav-group-toggle:hover .nav-icon-sm[b-nj7nizd4k9],
.nav-group-toggle.expanded .nav-icon-sm[b-nj7nizd4k9] {
    opacity: 1;
}

.nav-group-label[b-nj7nizd4k9] {
    flex: 1;
    text-align: left;
}

.nav-group-chevron[b-nj7nizd4k9] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    color: #475569;
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.nav-group-toggle.expanded .nav-group-chevron[b-nj7nizd4k9] {
    transform: rotate(90deg);
    color: #14b8a6;
}

/* Collapsible content */
.nav-group-items[b-nj7nizd4k9] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    padding-left: 0.25rem;
    border-left: 2px solid transparent;
    margin-left: 1rem;
    margin-top: 0;
}

.nav-group-items > *[b-nj7nizd4k9] {
    overflow: hidden;
}

.nav-group-items.expanded[b-nj7nizd4k9] {
    grid-template-rows: 1fr;
    margin-top: 0.375rem;
    border-left-color: rgba(20, 184, 166, 0.25);
    padding-top: 0.125rem;
    padding-bottom: 0.125rem;
}

/* ===== Navigation Sections ===== */
.nav-section[b-nj7nizd4k9] {
    padding: 0.25rem 0;
}

.nav-section-title[b-nj7nizd4k9] {
    display: block;
    padding: 0.5rem 1.25rem 0.25rem;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #475569;
}

.nav-divider[b-nj7nizd4k9] {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.08) 30%, rgba(255, 255, 255, 0.08) 70%, transparent 100%);
    margin: 0.625rem 1.25rem;
}

/* ===== Nav Items ===== */
.nav-item[b-nj7nizd4k9] {
    padding: 0.0625rem 0.75rem;
}

.nav-group-items .nav-item[b-nj7nizd4k9] {
    padding: 0.0625rem 0.375rem;
}

.nav-item[b-nj7nizd4k9]  .nav-link,
.nav-link[b-nj7nizd4k9] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    color: #94a3b8;
    background: transparent;
    border: none;
    border-radius: 0.5rem;
    font-size: 0.825rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
    text-align: left;
}

.nav-item[b-nj7nizd4k9]  .nav-link:hover,
.nav-link:hover[b-nj7nizd4k9] {
    background: rgba(255, 255, 255, 0.06);
    color: #e2e8f0;
    transform: translateX(2px);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

.nav-item[b-nj7nizd4k9]  a.active {
    background: linear-gradient(135deg, rgba(20, 184, 166, 0.15) 0%, rgba(15, 118, 110, 0.08) 100%);
    color: #ffffff;
    font-weight: 600;
    box-shadow: inset 3px 0 0 #14b8a6, 0 2px 8px rgba(20, 184, 166, 0.1);
    border-radius: 0.625rem;
}

.nav-item[b-nj7nizd4k9]  a.active .nav-icon {
    filter: brightness(1.5) saturate(1.2);
}

.nav-item[b-nj7nizd4k9]  a.active .nav-text {
    color: #e2e8f0;
}

/* ===== Nav Icons ===== */
.nav-icon[b-nj7nizd4k9] {
    display: inline-block;
    width: 1.125rem;
    height: 1.125rem;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    opacity: 0.8;
    transition: all 0.2s ease;
}

.nav-item:hover .nav-icon[b-nj7nizd4k9] {
    opacity: 1;
    transform: scale(1.05);
}

.nav-text[b-nj7nizd4k9] {
    flex: 1;
}

/* Icon Definitions */
.bi-house-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M12.71 2.29a1 1 0 0 0-1.42 0l-9 9a1 1 0 0 0 0 1.42A1 1 0 0 0 3 13h1v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7h1a1 1 0 0 0 .71-1.71zM9 20v-5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v5zm9 0h-2v-5a3 3 0 0 0-3-3h-4a3 3 0 0 0-3 3v5H6v-7.59l6-6 6 6z'/%3E%3C/svg%3E");
}

.bi-projects-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 16H5V5h14zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7zm4-8h6v2h-6zm0 4h6v2h-6zm0 4h6v2h-6z'/%3E%3C/svg%3E");
}

.bi-approval-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-2-5.83l6.59-6.59L18 9l-8 8-4-4 1.41-1.41L10 14.17z'/%3E%3C/svg%3E");
}

.bi-order-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M18 6h-2c0-2.21-1.79-4-4-4S8 3.79 8 6H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6-2c1.1 0 2 .9 2 2h-4c0-1.1.9-2 2-2zm6 16H6V8h2v2h2V8h4v2h2V8h2v12z'/%3E%3C/svg%3E");
}

/* Centro de Pendientes: bandeja de entrada */
.bi-inbox-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.34 3-3 3s-3-1.34-3-3H5V5h14v10z'/%3E%3C/svg%3E");
}

/* Aprobación compra: carrito */
.bi-cart-check-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z'/%3E%3C/svg%3E");
}

/* Aprobación pago indirecto: billete */
.bi-cash-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H3V6h18v12zm-9-9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM5 8h2v2H5zm12 6h2v2h-2z'/%3E%3C/svg%3E");
}

/* Aprobación pago maquinaria: camión */
.bi-truck-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M20 8h-3V4H3c-1.1 0-2 .9-2 2v11h2c0 1.66 1.34 3 3 3s3-1.34 3-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3h2v-5l-3-4zM6 18.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm13.5-9l1.96 2.5H17V9.5h2.5zm-1.5 9c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z'/%3E%3C/svg%3E");
}

/* Catálogo de bancos: banco */
.bi-bank-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M4 10v7h3v-7H4zm6 0v7h3v-7h-3zM2 22h19v-3H2v3zm14-12v7h3v-7h-3zm-4.5-9L2 6v2h19V6l-9.5-5z'/%3E%3C/svg%3E");
}

/* Catálogo de items: lista */
.bi-list-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z'/%3E%3C/svg%3E");
}

/* Finanzas por proyecto: billetera */
.bi-wallet-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M21 18v1c0 1.1-.9 2-2 2H5c-1.11 0-2-.9-2-2V5c0-1.1.89-2 2-2h14c1.1 0 2 .9 2 2v1h-9c-1.11 0-2 .9-2 2v8c0 1.1.89 2 2 2h9zm-9-2h10V8H12v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z'/%3E%3C/svg%3E");
}

/* Máquinas y equipo: llave */
.bi-wrench-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z'/%3E%3C/svg%3E");
}

/* Panorama Financiero: tendencia */
.bi-trend-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z'/%3E%3C/svg%3E");
}

/* Revisión pago contratista: persona con check */
.bi-person-check-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M11 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-2 6.17V20H3v-2c0-2.66 5.33-4 8-4 .35 0 .73.02 1.13.07l-3.13 4.1zM20.6 12.5l1.4 1.41-5.57 5.59-2.83-2.82 1.41-1.41 1.42 1.41 4.17-4.18z'/%3E%3C/svg%3E");
}

/* Personal y clientes (/admin/empleados): grupo de personas */
.bi-people-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E");
}

.bi-settings-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65a.5.5 0 0 0 .12-.64l-2-3.46a.5.5 0 0 0-.61-.22l-2.49 1a7.03 7.03 0 0 0-1.69-.98l-.38-2.65A.49.49 0 0 0 14 2h-4a.49.49 0 0 0-.49.42l-.38 2.65a7.03 7.03 0 0 0-1.69.98l-2.49-1a.5.5 0 0 0-.61.22l-2 3.46a.5.5 0 0 0 .12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65a.5.5 0 0 0-.12.64l2 3.46a.5.5 0 0 0 .61.22l2.49-1c.52.4 1.08.72 1.69.98l.38 2.65c.04.24.24.42.49.42h4c.25 0 .45-.18.49-.42l.38-2.65a7.03 7.03 0 0 0 1.69-.98l2.49 1a.5.5 0 0 0 .61-.22l2-3.46a.5.5 0 0 0-.12-.64l-2.11-1.65zM12 15.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7z'/%3E%3C/svg%3E");
}

.bi-logout-icon[b-nj7nizd4k9] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f87171' viewBox='0 0 24 24'%3E%3Cpath d='M16 17v-3H9v-4h7V7l5 5-5 5zM14 2a2 2 0 0 1 2 2v2h-2V4H5v16h9v-2h2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9z'/%3E%3C/svg%3E");
}

/* ===== User Section ===== */
.user-section[b-nj7nizd4k9] {
    padding: 1rem 0.75rem;
    margin-top: auto;
}

.user-card[b-nj7nizd4k9] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 0.75rem;
    margin-bottom: 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.user-avatar[b-nj7nizd4k9] {
    position: relative;
    width: 2.5rem;
    height: 2.5rem;
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.avatar-text[b-nj7nizd4k9] {
    color: white;
    font-size: 0.85rem;
    font-weight: 600;
}

.status-indicator[b-nj7nizd4k9] {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 0.625rem;
    height: 0.625rem;
    border-radius: 50%;
    border: 2px solid #1e293b;
}

.status-indicator.online[b-nj7nizd4k9] {
    background: #22c55e;
    box-shadow: 0 0 6px rgba(34, 197, 94, 0.6);
}

.user-info[b-nj7nizd4k9] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.user-name[b-nj7nizd4k9] {
    color: #f1f5f9;
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-role[b-nj7nizd4k9] {
    color: #64748b;
    font-size: 0.75rem;
}

.user-actions[b-nj7nizd4k9] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

/* ===== Logout Button ===== */
.logout-btn[b-nj7nizd4k9] {
    color: #f87171 !important;
}

.logout-btn:hover[b-nj7nizd4k9] {
    background: rgba(248, 113, 113, 0.1) !important;
    color: #fca5a5 !important;
}

/* ===== Scrollable Area =====
   Siempre visible: en móvil quien esconde el menú es el cajón del layout, no esta caja. */
.nav-scrollable[b-nj7nizd4k9] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.nav-scrollable[b-nj7nizd4k9]::-webkit-scrollbar {
    width: 4px;
}

.nav-scrollable[b-nj7nizd4k9]::-webkit-scrollbar-track {
    background: transparent;
}

.nav-scrollable[b-nj7nizd4k9]::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
}

.nav-scrollable[b-nj7nizd4k9]::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.2);
}

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    /* La marca ya la muestra la barra superior del layout: dentro del cajón el header queda
       sólo para la campana de notificaciones. */
    .sidebar-header[b-nj7nizd4k9] {
        padding: 0.5rem 0.85rem;
        justify-content: flex-end !important;
    }

    .logo-container[b-nj7nizd4k9] {
        display: none;
    }

    .nav-item[b-nj7nizd4k9] {
        padding: 0.0625rem 0.6rem;
    }

    .nav-item[b-nj7nizd4k9]  .nav-link,
    .nav-link[b-nj7nizd4k9] {
        padding: 0.7rem 0.85rem;
        font-size: 0.9rem;
    }

    .nav-icon[b-nj7nizd4k9] {
        width: 1.25rem;
        height: 1.25rem;
    }

    .nav-group-toggle[b-nj7nizd4k9] {
        padding: 0.65rem 0.75rem;
        font-size: 0.85rem;
    }

    .nav-section-title[b-nj7nizd4k9],
    .nav-section-label[b-nj7nizd4k9] {
        padding: 0.6rem 1rem 0.35rem;
        font-size: 0.68rem;
    }

    .nav-badge[b-nj7nizd4k9] {
        min-width: 1.4rem;
        height: 1.4rem;
        font-size: 0.72rem;
    }
}

/* El desplazamiento lateral del hover se queda pegado tras el toque en táctil. */
@media (hover: none) {
    .nav-item[b-nj7nizd4k9]  .nav-link:hover,
    .nav-link:hover[b-nj7nizd4k9] {
        background: transparent;
        color: #94a3b8;
        transform: none;
        box-shadow: none;
    }

    .nav-item[b-nj7nizd4k9]  .nav-link:active,
    .nav-link:active[b-nj7nizd4k9] {
        background: rgba(255, 255, 255, 0.12);
        color: #e2e8f0;
    }

    /* El enlace activo conserva su marca aunque el navegador lo deje en :hover. */
    .nav-item[b-nj7nizd4k9]  a.active:hover {
        background: linear-gradient(135deg, rgba(20, 184, 166, 0.15) 0%, rgba(15, 118, 110, 0.08) 100%);
        color: #ffffff;
        box-shadow: inset 3px 0 0 #14b8a6, 0 2px 8px rgba(20, 184, 166, 0.1);
    }
}

/* ===== Animation Keyframes ===== */
@keyframes pulse-b-nj7nizd4k9 {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0.6;
    }
}

.status-indicator.online[b-nj7nizd4k9] {
    animation: pulse-b-nj7nizd4k9 2s infinite;
}

/* ===== Nav Section Label ===== */
.nav-section-label[b-nj7nizd4k9] {
    display: block;
    padding: 0.5rem 1.25rem 0.25rem;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #475569;
}

/* ===== Nav Badges ===== */
.nav-badge[b-nj7nizd4k9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.3rem;
    border-radius: 0.625rem;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    background: #1565c0;
    color: #fff;
    flex-shrink: 0;
    margin-left: auto;
}

.nav-badge-warn[b-nj7nizd4k9] {
    background: #b45309;
    color: #fef3c7;
}

.nav-badge-danger[b-nj7nizd4k9] {
    background: #b91c1c;
    color: #fee2e2;
}
/* /Components/Layout/SidebarUserFooter.razor.rz.scp.css */
/* ===== Nav Items (shared styles needed by this component) ===== */
.nav-item[b-8rpzmd612b] {
    padding: 0.0625rem 0.75rem;
}

.nav-item[b-8rpzmd612b]  .nav-link,
.nav-link[b-8rpzmd612b] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    color: #94a3b8;
    background: transparent;
    border: none;
    border-radius: 0.5rem;
    font-size: 0.825rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
    text-align: left;
}

.nav-item[b-8rpzmd612b]  .nav-link:hover,
.nav-link:hover[b-8rpzmd612b] {
    background: rgba(255, 255, 255, 0.06);
    color: #e2e8f0;
    transform: translateX(2px);
}

.nav-item[b-8rpzmd612b]  a.active {
    background: linear-gradient(135deg, rgba(20, 184, 166, 0.15) 0%, rgba(15, 118, 110, 0.1) 100%);
    color: #ffffff;
    font-weight: 600;
    box-shadow: inset 3px 0 0 #14b8a6;
}

.nav-item[b-8rpzmd612b]  a.active .nav-icon {
    filter: brightness(1.4);
}

/* ===== Nav Icons ===== */
.nav-icon[b-8rpzmd612b] {
    display: inline-block;
    width: 1.125rem;
    height: 1.125rem;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
    opacity: 0.8;
    transition: all 0.2s ease;
}

.nav-item:hover .nav-icon[b-8rpzmd612b] {
    opacity: 1;
    transform: scale(1.05);
}

.nav-text[b-8rpzmd612b] {
    flex: 1;
}

/* ===== Icon Definitions ===== */
.bi-settings-icon[b-8rpzmd612b] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65a.5.5 0 0 0 .12-.64l-2-3.46a.5.5 0 0 0-.61-.22l-2.49 1a7.03 7.03 0 0 0-1.69-.98l-.38-2.65A.49.49 0 0 0 14 2h-4a.49.49 0 0 0-.49.42l-.38 2.65a7.03 7.03 0 0 0-1.69.98l-2.49-1a.5.5 0 0 0-.61.22l-2 3.46a.5.5 0 0 0 .12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65a.5.5 0 0 0-.12.64l2 3.46a.5.5 0 0 0 .61.22l2.49-1c.52.4 1.08.72 1.69.98l.38 2.65c.04.24.24.42.49.42h4c.25 0 .45-.18.49-.42l.38-2.65a7.03 7.03 0 0 0 1.69-.98l2.49 1a.5.5 0 0 0 .61-.22l2-3.46a.5.5 0 0 0-.12-.64l-2.11-1.65zM12 15.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7z'/%3E%3C/svg%3E");
}

.bi-logout-icon[b-8rpzmd612b] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f87171' viewBox='0 0 24 24'%3E%3Cpath d='M16 17v-3H9v-4h7V7l5 5-5 5zM14 2a2 2 0 0 1 2 2v2h-2V4H5v16h9v-2h2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9z'/%3E%3C/svg%3E");
}

.bi-register-icon[b-8rpzmd612b] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2394a3b8' viewBox='0 0 24 24'%3E%3Cpath d='M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 8c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm-6 4c.22-.72 3.31-2 6-2s5.78 1.28 6 2H9zM6 15v-3h3v-2H6V7H4v3H1v2h3v3z'/%3E%3C/svg%3E");
}

.bi-login-icon[b-8rpzmd612b] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M11 7L9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z'/%3E%3C/svg%3E");
}

/* ===== User Section ===== */
.user-section[b-8rpzmd612b] {
    padding: 1rem 0.75rem;
    margin-top: auto;
}

.user-card[b-8rpzmd612b] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 0.75rem;
    margin-bottom: 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.user-avatar[b-8rpzmd612b] {
    position: relative;
    width: 2.5rem;
    height: 2.5rem;
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.avatar-text[b-8rpzmd612b] {
    color: white;
    font-size: 0.85rem;
    font-weight: 600;
}

.status-indicator[b-8rpzmd612b] {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 0.625rem;
    height: 0.625rem;
    border-radius: 50%;
    border: 2px solid #1e293b;
}

.status-indicator.online[b-8rpzmd612b] {
    background: #22c55e;
    box-shadow: 0 0 6px rgba(34, 197, 94, 0.6);
}

.user-info[b-8rpzmd612b] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.user-name[b-8rpzmd612b] {
    color: #f1f5f9;
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-role[b-8rpzmd612b] {
    color: #64748b;
    font-size: 0.75rem;
}

.user-actions[b-8rpzmd612b] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

/* ===== Logout Button ===== */
.logout-btn[b-8rpzmd612b] {
    color: #f87171 !important;
}

.logout-btn:hover[b-8rpzmd612b] {
    background: rgba(248, 113, 113, 0.1) !important;
    color: #fca5a5 !important;
}

/* ===== Auth Section (Not Authorized) ===== */
.auth-section[b-8rpzmd612b] {
    padding: 1rem 0.75rem;
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.auth-link.primary[b-8rpzmd612b] {
    background: linear-gradient(135deg, #0f766e 0%, #14b8a6 100%) !important;
    color: white !important;
    font-weight: 600;
}

.auth-link.primary:hover[b-8rpzmd612b] {
    background: linear-gradient(135deg, #14b8a6 0%, #0f766e 100%) !important;
    transform: translateX(0) !important;
    box-shadow: 0 4px 12px rgba(20, 184, 166, 0.3);
}

/* ===== Animation Keyframes ===== */
@keyframes pulse-b-8rpzmd612b {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0.6;
    }
}

.status-indicator.online[b-8rpzmd612b] {
    animation: pulse-b-8rpzmd612b 2s infinite;
}
/* /Components/Pages/FichaCostoUnd/FichaDialog.razor.rz.scp.css */
/* Modal overlay */
.ficha-modal-backdrop[b-zny7v4mno7] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.5);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    padding: 1rem;
}

/* Modal container */
.ficha-modal[b-zny7v4mno7] {
    background: white;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 1100px;
    height: 90vh;
    display: flex;
    flex-direction: column;
}

/* Header */
.ficha-header[b-zny7v4mno7] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 1rem;
    background: #1e293b;
    color: white;
    border-radius: 8px 8px 0 0;
    flex-shrink: 0;
}

.ficha-title[b-zny7v4mno7] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    font-size: 0.9rem;
    margin: 0;
}

.header-right[b-zny7v4mno7] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.header-total[b-zny7v4mno7] {
    font-size: 0.78rem;
    font-weight: 600;
    font-family: 'Consolas', monospace;
    color: #93c5fd;
    background: rgba(255,255,255,0.08);
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
}

.btn-close-modal[b-zny7v4mno7] {
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: white;
    width: 26px;
    height: 26px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.btn-close-modal:hover[b-zny7v4mno7] {
    background: rgba(255, 255, 255, 0.2);
}

/* ===== TAB NAVIGATION ===== */
.tab-nav[b-zny7v4mno7] {
    display: flex;
    background: #f1f5f9;
    border-bottom: 2px solid #e2e8f0;
    flex-shrink: 0;
    overflow-x: auto;
}

.tab-btn[b-zny7v4mno7] {
    flex: 1;
    padding: 0.5rem 0.6rem;
    font-size: 0.72rem;
    font-weight: 500;
    color: #64748b;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    transition: all 0.15s;
    white-space: nowrap;
}

.tab-btn:hover[b-zny7v4mno7] {
    color: #334155;
    background: rgba(0,0,0,0.03);
}

.tab-btn.active[b-zny7v4mno7] {
    color: #1e293b;
    font-weight: 600;
    border-bottom-color: #1e293b;
    background: white;
}

.tab-badge[b-zny7v4mno7] {
    font-size: 0.6rem;
    font-weight: 700;
    background: #1e293b;
    color: white;
    padding: 0.05rem 0.35rem;
    border-radius: 10px;
    min-width: 16px;
    text-align: center;
    line-height: 1.3;
}

.tab-btn.active .tab-badge[b-zny7v4mno7] {
    background: #3b82f6;
}

/* Body - scrollable area */
.ficha-body[b-zny7v4mno7] {
    flex: 1;
    overflow-y: auto;
    padding: 0.75rem;
    background: #fafafa;
    min-height: 0;
}

/* Footer */
.ficha-footer[b-zny7v4mno7] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0.75rem;
    background: #f8fafc;
    border-top: 1px solid #e5e7eb;
    border-radius: 0 0 8px 8px;
    flex-shrink: 0;
}

.footer-message[b-zny7v4mno7] {
    font-size: 0.75rem;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.footer-actions[b-zny7v4mno7] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

.btn-cancel[b-zny7v4mno7] {
    padding: 0.35rem 0.7rem;
    font-size: 0.75rem;
    font-weight: 500;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    color: #6b7280;
    cursor: pointer;
    transition: all 0.15s;
}

.btn-cancel:hover[b-zny7v4mno7] {
    background: #f3f4f6;
}

.btn-save[b-zny7v4mno7] {
    padding: 0.35rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 500;
    background: #1e293b;
    border: none;
    border-radius: 4px;
    color: white;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.btn-save:hover[b-zny7v4mno7] {
    background: #334155;
}

.btn-nav[b-zny7v4mno7] {
    padding: 0.3rem 0.55rem;
    font-size: 0.7rem;
    font-weight: 500;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    color: #475569;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 0.2rem;
}

.btn-nav:hover[b-zny7v4mno7] {
    background: #f1f5f9;
    border-color: #94a3b8;
}

/* Info section */
.info-grid[b-zny7v4mno7] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.info-card[b-zny7v4mno7] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 0.6rem;
}

.info-label[b-zny7v4mno7] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6b7280;
    margin-bottom: 0.3rem;
}

.info-value[b-zny7v4mno7] {
    font-size: 0.8rem;
    color: #374151;
    font-weight: 500;
}

.info-card[b-zny7v4mno7]  .form-control,
.info-card[b-zny7v4mno7]  input {
    font-size: 0.8rem;
    padding: 0.3rem 0.5rem;
    border-radius: 4px;
    border: 1px solid #e5e7eb;
}

.info-card[b-zny7v4mno7]  textarea.form-control {
    min-height: 50px;
    resize: none;
}

/* ===== QUICK SUMMARY CARDS (General tab) ===== */
.quick-summary[b-zny7v4mno7] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.5rem;
}

.qs-card[b-zny7v4mno7] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 0.6rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    transition: all 0.15s;
}

.qs-card:hover[b-zny7v4mno7] {
    border-color: #93c5fd;
    background: #f0f9ff;
}

.qs-card.qs-total[b-zny7v4mno7] {
    background: #1e293b;
    border-color: #1e293b;
    color: white;
}

.qs-card.qs-total:hover[b-zny7v4mno7] {
    background: #334155;
}

.qs-icon[b-zny7v4mno7] {
    font-size: 1.1rem;
    color: #6b7280;
    flex-shrink: 0;
}

.qs-total .qs-icon[b-zny7v4mno7] {
    color: #93c5fd;
}

.qs-data[b-zny7v4mno7] {
    min-width: 0;
}

.qs-amount[b-zny7v4mno7] {
    font-size: 0.8rem;
    font-weight: 700;
    font-family: 'Consolas', monospace;
    color: #1e293b;
    line-height: 1.2;
}

.qs-total .qs-amount[b-zny7v4mno7] {
    color: white;
}

.qs-label[b-zny7v4mno7] {
    font-size: 0.6rem;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.qs-total .qs-label[b-zny7v4mno7] {
    color: #94a3b8;
}

/* ===== SECTION / TAB SECTION ===== */
.section[b-zny7v4mno7] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.tab-section[b-zny7v4mno7] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* ===== TOOLBAR ===== */
.section-toolbar[b-zny7v4mno7] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.35rem 0.5rem;
    background: #f8fafc;
    border-bottom: 1px solid #e5e7eb;
    gap: 0.5rem;
    flex-shrink: 0;
}

.toolbar-left[b-zny7v4mno7],
.toolbar-right[b-zny7v4mno7] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.btn-tool[b-zny7v4mno7] {
    padding: 0.2rem 0.45rem;
    font-size: 0.68rem;
    font-weight: 500;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background: white;
    color: #374151;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
}

.btn-tool:hover[b-zny7v4mno7] {
    background: #f0f9ff;
    border-color: #93c5fd;
    color: #1d4ed8;
}

.btn-tool-danger:hover[b-zny7v4mno7] {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #dc2626;
}

.toolbar-sep[b-zny7v4mno7] {
    width: 1px;
    height: 16px;
    background: #d1d5db;
    margin: 0 0.15rem;
}

.toolbar-count[b-zny7v4mno7] {
    font-size: 0.65rem;
    color: #9ca3af;
    font-weight: 500;
}

/* ===== TABLE SCROLL CONTAINER ===== */
.table-scroll[b-zny7v4mno7] {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}

/* Table */
.detail-table[b-zny7v4mno7] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.75rem;
}

.detail-table thead[b-zny7v4mno7] {
    background: #f8fafc;
    position: sticky;
    top: 0;
    z-index: 1;
}

.detail-table th[b-zny7v4mno7] {
    padding: 0.35rem 0.4rem;
    font-weight: 600;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    text-align: left;
}

.detail-table th.center[b-zny7v4mno7] { text-align: center; }
.detail-table th.right[b-zny7v4mno7] { text-align: right; }

.detail-table td[b-zny7v4mno7] {
    padding: 0.25rem 0.35rem;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.detail-table tbody tr:hover[b-zny7v4mno7] {
    background: #fafafa;
}

.detail-table tbody tr.row-selected[b-zny7v4mno7] {
    background: #eff6ff;
}

.detail-table[b-zny7v4mno7]  .form-control,
.detail-table[b-zny7v4mno7]  .form-control-sm {
    font-size: 0.75rem;
    padding: 0.2rem 0.35rem;
    border-radius: 3px;
    border: 1px solid #e5e7eb;
}

.detail-table[b-zny7v4mno7]  .form-control:focus {
    border-color: #9ca3af;
    box-shadow: none;
}

.row-num[b-zny7v4mno7] {
    text-align: center;
    color: #9ca3af;
    font-size: 0.65rem;
    font-weight: 500;
}

.col-amt[b-zny7v4mno7] {
    text-align: right;
    font-family: 'Consolas', monospace;
    color: #374151;
}

.row-actions[b-zny7v4mno7] {
    display: flex;
    gap: 2px;
    align-items: center;
    justify-content: center;
}

.btn-remove[b-zny7v4mno7] {
    padding: 0.1rem 0.35rem;
    font-size: 0.7rem;
    background: transparent;
    color: #9ca3af;
    border: 1px solid #e5e7eb;
    border-radius: 3px;
    cursor: pointer;
    transition: all 0.15s;
}

.btn-remove:hover[b-zny7v4mno7] {
    background: #fee2e2;
    color: #dc2626;
    border-color: #fecaca;
}

.btn-action[b-zny7v4mno7] {
    padding: 0.1rem 0.3rem;
    font-size: 0.6rem;
    background: transparent;
    color: #9ca3af;
    border: 1px solid #e5e7eb;
    border-radius: 3px;
    cursor: pointer;
    transition: all 0.15s;
}

.btn-action:hover[b-zny7v4mno7] {
    background: #eff6ff;
    color: #2563eb;
    border-color: #bfdbfe;
}

/* ===== TAB SUBTOTAL BAR ===== */
.tab-subtotal[b-zny7v4mno7] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.45rem 0.6rem;
    background: #f1f5f9;
    border-top: 1px solid #e2e8f0;
    font-size: 0.75rem;
    font-weight: 600;
    color: #475569;
    flex-shrink: 0;
}

.tab-subtotal-amt[b-zny7v4mno7] {
    font-family: 'Consolas', monospace;
    font-size: 0.85rem;
    color: #1e293b;
}

/* ===== RESUMEN TAB ===== */
.resumen-tab[b-zny7v4mno7] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.resumen-breakdown[b-zny7v4mno7] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}

.resumen-card[b-zny7v4mno7] {
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.resumen-card-header[b-zny7v4mno7] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.6rem;
    background: #f8fafc;
    border-bottom: 1px solid #e5e7eb;
    font-size: 0.7rem;
    font-weight: 600;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.resumen-card-count[b-zny7v4mno7] {
    margin-left: auto;
    font-size: 0.6rem;
    font-weight: 500;
    color: #9ca3af;
    text-transform: none;
}

.resumen-card-amount[b-zny7v4mno7] {
    padding: 0.5rem 0.6rem;
    font-size: 1rem;
    font-weight: 700;
    font-family: 'Consolas', monospace;
    color: #1e293b;
}

.resumen-card-detail[b-zny7v4mno7] {
    padding: 0 0.6rem 0.5rem;
    border-top: 1px solid #f3f4f6;
}

.resumen-line[b-zny7v4mno7] {
    display: flex;
    justify-content: space-between;
    font-size: 0.68rem;
    color: #6b7280;
    padding: 0.2rem 0;
    border-bottom: 1px solid #f9fafb;
}

.resumen-line span:last-child[b-zny7v4mno7] {
    font-family: 'Consolas', monospace;
    color: #374151;
    font-weight: 500;
}

.resumen-more[b-zny7v4mno7] {
    font-size: 0.62rem;
    color: #9ca3af;
    padding-top: 0.2rem;
    font-style: italic;
}

.resumen-totals[b-zny7v4mno7] {
    display: flex;
    justify-content: flex-end;
}

/* Summary table */
.summary-table[b-zny7v4mno7] {
    width: 340px;
    border-collapse: collapse;
    font-size: 0.78rem;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.summary-table td[b-zny7v4mno7] {
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid #f3f4f6;
}

.summary-table tr:last-child td[b-zny7v4mno7] {
    border-bottom: none;
}

.summary-label[b-zny7v4mno7] {
    font-weight: 500;
    color: #6b7280;
    text-align: right;
}

.summary-value[b-zny7v4mno7] {
    text-align: right;
    font-family: 'Consolas', monospace;
    font-weight: 600;
    color: #374151;
    width: 120px;
}

.summary-table .total-row td[b-zny7v4mno7] {
    background: #1e293b;
    color: white;
    font-weight: 600;
    font-size: 0.85rem;
}

.summary-table .total-row .summary-label[b-zny7v4mno7],
.summary-table .total-row .summary-value[b-zny7v4mno7] {
    color: white;
}

/* Subtotal row */
.subtotal-row[b-zny7v4mno7] {
    background: #f9fafb !important;
}

.subtotal-row td[b-zny7v4mno7] {
    padding: 0.35rem 0.4rem;
    font-weight: 600;
    color: #374151;
    border-bottom: none;
}

/* Cotización history button */
.btn-cotiz-hist[b-zny7v4mno7] {
    padding: 0.1rem 0.3rem;
    font-size: 0.65rem;
    background: transparent;
    color: #6b7280;
    border: 1px solid #e5e7eb;
    border-radius: 3px;
    cursor: pointer;
    transition: all 0.15s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn-cotiz-hist:hover[b-zny7v4mno7] {
    background: #eff6ff;
    color: #2563eb;
    border-color: #bfdbfe;
}

/* Cotización history dialog */
.cotiz-hist-backdrop[b-zny7v4mno7] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.4);
    backdrop-filter: blur(1px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1100;
}

.cotiz-hist-dialog[b-zny7v4mno7] {
    background: white;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.18);
    width: 440px;
    max-width: 95vw;
    max-height: 400px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.cotiz-hist-header[b-zny7v4mno7] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0.75rem;
    background: #1e293b;
    color: white;
}

.cotiz-hist-title[b-zny7v4mno7] {
    font-size: 0.8rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.cotiz-hist-subtitle[b-zny7v4mno7] {
    padding: 0.35rem 0.75rem;
    font-size: 0.72rem;
    font-weight: 500;
    color: #475569;
    background: #f8fafc;
    border-bottom: 1px solid #e5e7eb;
}

.cotiz-hist-loading[b-zny7v4mno7],
.cotiz-hist-empty[b-zny7v4mno7] {
    padding: 1.5rem;
    text-align: center;
    font-size: 0.78rem;
    color: #9ca3af;
}

.cotiz-hist-table[b-zny7v4mno7] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.75rem;
}

.cotiz-hist-table thead[b-zny7v4mno7] {
    background: #f8fafc;
    position: sticky;
    top: 0;
}

.cotiz-hist-table th[b-zny7v4mno7] {
    padding: 0.35rem 0.6rem;
    font-weight: 600;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    text-align: left;
}

.cotiz-hist-table td[b-zny7v4mno7] {
    padding: 0.35rem 0.6rem;
    border-bottom: 1px solid #f3f4f6;
    color: #374151;
}

.cotiz-hist-table tbody tr:hover[b-zny7v4mno7] {
    background: #f0f9ff;
}

/* Responsive */
@media (max-width: 768px) {
    .ficha-modal[b-zny7v4mno7] {
        height: 95vh;
    }

    .info-grid[b-zny7v4mno7] {
        grid-template-columns: 1fr;
    }

    .quick-summary[b-zny7v4mno7] {
        grid-template-columns: repeat(2, 1fr);
    }

    .resumen-breakdown[b-zny7v4mno7] {
        grid-template-columns: 1fr;
    }

    .summary-table[b-zny7v4mno7] {
        width: 100%;
    }

    .tab-btn[b-zny7v4mno7] {
        font-size: 0.65rem;
        padding: 0.4rem 0.3rem;
    }
}
/* /Components/Pages/FichaCostoUnd/NewFichaDialog.razor.rz.scp.css */
/* Modal overlay */
.ficha-modal-backdrop[b-8b20gv2s8u] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.5);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    padding: 1rem;
}

/* Modal container */
.ficha-modal[b-8b20gv2s8u] {
    background: white;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 600px; /* Smaller for just creation */
    min-height: 60vh;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
}

/* Header */
.ficha-header[b-8b20gv2s8u] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.8rem 1rem;
    background: #1e293b;
    color: white;
    border-radius: 8px 8px 0 0;
    flex-shrink: 0;
}

.ficha-title[b-8b20gv2s8u] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    font-size: 1rem;
    margin: 0;
}

.btn-close-modal[b-8b20gv2s8u] {
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: white;
    width: 26px;
    height: 26px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.btn-close-modal:hover[b-8b20gv2s8u] {
    background: rgba(255, 255, 255, 0.2);
}

/* Body */
.ficha-body[b-8b20gv2s8u] {
    flex: 1;
    overflow-y: auto;
    padding: 1.5rem;
    background: #fafafa;
}

/* Footer */
.ficha-footer[b-8b20gv2s8u] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.8rem 1rem;
    background: #f8fafc;
    border-top: 1px solid #e5e7eb;
    border-radius: 0 0 8px 8px;
    flex-shrink: 0;
}

.footer-message[b-8b20gv2s8u] {
    font-size: 0.85rem;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.footer-actions[b-8b20gv2s8u] {
    display: flex;
    gap: 0.5rem;
}

.btn-cancel[b-8b20gv2s8u] {
    padding: 0.4rem 0.8rem;
    font-size: 0.85rem;
    font-weight: 500;
    background: white;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    color: #6b7280;
    cursor: pointer;
    transition: all 0.15s;
}

.btn-cancel:hover[b-8b20gv2s8u] {
    background: #f3f4f6;
}

.btn-save[b-8b20gv2s8u] {
    padding: 0.4rem 1rem;
    font-size: 0.85rem;
    font-weight: 500;
    background: #1e293b;
    border: none;
    border-radius: 4px;
    color: white;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-save:hover[b-8b20gv2s8u] {
    background: #334155;
}

/* Info section specific to form */
.form-group[b-8b20gv2s8u] {
    margin-bottom: 1rem;
}

.form-label[b-8b20gv2s8u] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #4b5563;
    margin-bottom: 0.4rem;
    display: block;
}

.form-control[b-8b20gv2s8u] {
    font-size: 0.9rem;
    padding: 0.5rem;
    border-radius: 6px;
    border: 1px solid #d1d5db;
    width: 100%;
}

.form-control:focus[b-8b20gv2s8u] {
    outline: none;
    border-color: #6366f1;
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
}

textarea.form-control[b-8b20gv2s8u] {
    min-height: 80px;
    resize: vertical;
}
/* /Components/Pages/Gerencia/PagDashboardSeguimientoProyecto.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════
   Dashboard de Seguimiento de Proyecto — estilos scoped (page-specific).
   Los widgets genéricos (shell, toolbar, statsbar, corp-card, corp-tbl)
   vienen del sistema corporativo global; aquí sólo van los widgets propios
   de este dashboard (KPIs, tabs, gauges, alertas).
   ══════════════════════════════════════════════════════════════════════ */

.ds-body[b-n2t2x3z8cf] { padding: 1rem 1.5rem 1.5rem; }

/* ── KPI Cards ─────────────────────────────────────────────── */
.ds-kpi-row[b-n2t2x3z8cf] { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
@media (max-width: 1200px) { .ds-kpi-row[b-n2t2x3z8cf] { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { .ds-kpi-row[b-n2t2x3z8cf] { grid-template-columns: repeat(2, 1fr); } }

.ds-kpi[b-n2t2x3z8cf] {
    background: var(--corp-bg-card, #fff); border-radius: 10px; padding: 0.85rem 1rem;
    border: 1px solid var(--corp-border, #e2e8f0); box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    display: flex; align-items: center; gap: 0.65rem;
    transition: transform 0.15s, box-shadow 0.15s;
}
.ds-kpi:hover[b-n2t2x3z8cf] { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.ds-kpi-icon[b-n2t2x3z8cf] {
    width: 40px; height: 40px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; flex-shrink: 0;
}
.ds-kpi-icon.avance[b-n2t2x3z8cf]      { background: linear-gradient(135deg, #3b82f620, #60a5fa20); color: #3b82f6; }
.ds-kpi-icon.presupuesto[b-n2t2x3z8cf] { background: linear-gradient(135deg, #0f766e20, #14b8a620); color: #0f766e; }
.ds-kpi-icon.gastos[b-n2t2x3z8cf]      { background: linear-gradient(135deg, #ef444420, #f8717120); color: #ef4444; }
.ds-kpi-icon.balance[b-n2t2x3z8cf]     { background: linear-gradient(135deg, #22c55e20, #4ade8020); color: #22c55e; }
.ds-kpi-icon.eficiencia[b-n2t2x3z8cf]  { background: linear-gradient(135deg, #8b5cf620, #a78bfa20); color: #8b5cf6; }
.ds-kpi-icon.dias[b-n2t2x3z8cf]        { background: linear-gradient(135deg, #f59e0b20, #fbbf2420); color: #f59e0b; }
.ds-kpi-content[b-n2t2x3z8cf] { flex: 1; min-width: 0; }
.ds-kpi-label[b-n2t2x3z8cf] { font-size: 0.6rem; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.04em; }
.ds-kpi-value[b-n2t2x3z8cf] { font-size: 1.15rem; font-weight: 700; color: #1e293b; line-height: 1.2; }
.ds-kpi-sub[b-n2t2x3z8cf]   { font-size: 0.6rem; color: #94a3b8; }
.ds-kpi-value.positive[b-n2t2x3z8cf] { color: #16a34a; }
.ds-kpi-value.negative[b-n2t2x3z8cf] { color: #dc2626; }
.ds-kpi-value.warning[b-n2t2x3z8cf]  { color: #f59e0b; }

/* ── Banderas gerenciales ──────────────────────────────────── */
.ds-flags[b-n2t2x3z8cf] { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 1rem; }
.ds-flag[b-n2t2x3z8cf] {
    display: inline-flex; align-items: center; gap: 0.3rem;
    padding: 0.3rem 0.6rem; border-radius: 6px; font-size: 0.72rem; font-weight: 600;
    border: 1px solid transparent;
}
.ds-flag.bad[b-n2t2x3z8cf]  { background: var(--corp-bad-bg, #fee2e2); color: var(--corp-bad, #991b1b); border-color: #fca5a5; }
.ds-flag.warn[b-n2t2x3z8cf] { background: var(--corp-warn-bg, #fef3c7); color: var(--corp-warn, #92400e); border-color: #fcd34d; }
.ds-flag.ok[b-n2t2x3z8cf]   { background: var(--corp-ok-bg, #d1fae5); color: var(--corp-ok, #065f46); border-color: #6ee7b7; }

/* ── Section Tabs ──────────────────────────────────────────── */
.ds-tabs[b-n2t2x3z8cf] {
    display: flex; gap: 0.25rem; margin-bottom: 1rem;
    background: #f1f5f9; border-radius: 10px; padding: 0.3rem; overflow-x: auto;
}
.ds-tab[b-n2t2x3z8cf] {
    padding: 0.5rem 1rem; border-radius: 8px; font-size: 0.8rem; font-weight: 600;
    color: #64748b; cursor: pointer; transition: all 0.15s; white-space: nowrap;
    border: none; background: none;
}
.ds-tab:hover[b-n2t2x3z8cf]  { color: #1e293b; background: rgba(255,255,255,0.5); }
.ds-tab.active[b-n2t2x3z8cf] { background: #fff; color: #0f172a; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }

/* ── Cards (page-local variant, alineada al corp-card) ─────── */
.ds-card[b-n2t2x3z8cf] {
    background: #fff; border-radius: 10px; box-shadow: 0 1px 4px rgba(0,0,0,0.05);
    overflow: hidden; border: 1px solid #e2e8f0; margin-bottom: 0.85rem;
}
.ds-card-header[b-n2t2x3z8cf] {
    display: flex; justify-content: space-between; align-items: center;
    background: #f8fafc; padding: 0.6rem 0.85rem; border-bottom: 1px solid #e2e8f0;
}
.ds-card-title[b-n2t2x3z8cf] { font-weight: 600; font-size: 0.85rem; color: #334155; display: flex; align-items: center; gap: 0.4rem; }
.ds-card-body[b-n2t2x3z8cf] { padding: 0.75rem; }
.ds-badge-light[b-n2t2x3z8cf] {
    font-size: 0.65rem; font-weight: 600; color: #64748b;
    background: #f1f5f9; padding: 0.15rem 0.5rem; border-radius: 999px;
}

/* ── Tables ────────────────────────────────────────────────── */
.ds-table[b-n2t2x3z8cf] { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
.ds-table thead[b-n2t2x3z8cf] { background: #f8fafc; }
.ds-table thead th[b-n2t2x3z8cf] {
    padding: 0.4rem 0.5rem; font-weight: 600; font-size: 0.65rem;
    text-transform: uppercase; letter-spacing: 0.03em; color: #64748b;
    border-bottom: 1px solid #e2e8f0; text-align: left;
}
.ds-table thead th.text-end[b-n2t2x3z8cf] { text-align: right; }
.ds-table tbody td[b-n2t2x3z8cf] { padding: 0.4rem 0.5rem; border-bottom: 1px solid #f1f5f9; color: #334155; }
.ds-table tbody tr:hover[b-n2t2x3z8cf] { background: #f8fafc; }
.ds-table .amt[b-n2t2x3z8cf] { text-align: right; font-family: var(--corp-mono, monospace); }
.ds-table .center[b-n2t2x3z8cf] { text-align: center; }
.ds-table tfoot td[b-n2t2x3z8cf] { padding: 0.5rem; font-weight: 600; border-top: 2px solid #e2e8f0; color: #1e293b; }
.ds-table-wrap[b-n2t2x3z8cf] { overflow-x: auto; }

/* ── Grids ─────────────────────────────────────────────────── */
.ds-grid-2[b-n2t2x3z8cf] { display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem; }
.ds-grid-3[b-n2t2x3z8cf] { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.85rem; }
@media (max-width: 1100px) { .ds-grid-3[b-n2t2x3z8cf] { grid-template-columns: 1fr; } }
@media (max-width: 900px)  { .ds-grid-2[b-n2t2x3z8cf] { grid-template-columns: 1fr; } }

/* ── Progress bar ──────────────────────────────────────────── */
.ds-progress[b-n2t2x3z8cf] { width: 100%; height: 6px; background: #e2e8f0; border-radius: 3px; overflow: hidden; }
.ds-progress-fill[b-n2t2x3z8cf] { height: 100%; border-radius: 3px; transition: width 0.3s; }
.ds-progress-lg[b-n2t2x3z8cf] { height: 10px; }
.ds-progress-lg .ds-progress-fill[b-n2t2x3z8cf] { height: 10px; }
.fill-ok[b-n2t2x3z8cf] { background: #22c55e; }
.fill-warn[b-n2t2x3z8cf] { background: #f59e0b; }
.fill-over[b-n2t2x3z8cf] { background: #ef4444; }
.fill-blue[b-n2t2x3z8cf] { background: #3b82f6; }
.fill-purple[b-n2t2x3z8cf] { background: #8b5cf6; }

/* ── Badges de estado ──────────────────────────────────────── */
.ds-estado[b-n2t2x3z8cf] {
    padding: 0.12rem 0.45rem; border-radius: 4px; font-size: 0.65rem;
    font-weight: 600; text-transform: uppercase;
}
.estado-completado[b-n2t2x3z8cf] { background: var(--corp-ok-bg, #d1fae5); color: var(--corp-ok, #065f46); }
.estado-en-progreso[b-n2t2x3z8cf] { background: #dbeafe; color: #1e40af; }
.estado-pendiente[b-n2t2x3z8cf] { background: var(--corp-warn-bg, #fef3c7); color: var(--corp-warn, #92400e); }
.estado-retrasado[b-n2t2x3z8cf] { background: var(--corp-bad-bg, #fee2e2); color: var(--corp-bad, #991b1b); }
.estado-esperando[b-n2t2x3z8cf] { background: var(--corp-info-bg, #e0f2fe); color: var(--corp-info-txt, #075985); }
.estado-parcial[b-n2t2x3z8cf] { background: #fce7f3; color: #9d174d; }
.estado-finalizado[b-n2t2x3z8cf] { background: var(--corp-ok-bg, #d1fae5); color: var(--corp-ok, #065f46); }
.estado-cancelado[b-n2t2x3z8cf] { background: #f1f5f9; color: #64748b; }

.ds-tipo[b-n2t2x3z8cf] {
    padding: 0.1rem 0.4rem; border-radius: 4px; font-size: 0.65rem;
    font-weight: 600; text-transform: uppercase;
}
.proc-anticipo[b-n2t2x3z8cf] { background: #dbeafe; color: #1e40af; }
.proc-avance[b-n2t2x3z8cf] { background: #d1fae5; color: #065f46; }
.proc-retencion[b-n2t2x3z8cf] { background: #fef3c7; color: #92400e; }
.proc-finiquito[b-n2t2x3z8cf] { background: #ede9fe; color: #5b21b6; }
.proc-otro[b-n2t2x3z8cf] { background: #f1f5f9; color: #64748b; }

.bom-ok[b-n2t2x3z8cf] { color: #16a34a; font-weight: 600; }
.bom-over[b-n2t2x3z8cf] { color: #dc2626; font-weight: 600; }
.bom-partial[b-n2t2x3z8cf] { color: #f59e0b; font-weight: 600; }

/* ── Alert cards ───────────────────────────────────────────── */
.ds-alert[b-n2t2x3z8cf] {
    display: flex; align-items: flex-start; gap: 0.5rem;
    padding: 0.55rem 0.75rem; border-bottom: 1px solid #f1f5f9;
}
.ds-alert:last-child[b-n2t2x3z8cf] { border-bottom: none; }
.ds-alert-icon[b-n2t2x3z8cf] { font-size: 0.9rem; flex-shrink: 0; margin-top: 0.1rem; }
.ds-alert-content[b-n2t2x3z8cf] { flex: 1; }
.ds-alert-title[b-n2t2x3z8cf] { font-size: 0.78rem; font-weight: 600; color: #1e293b; }
.ds-alert-desc[b-n2t2x3z8cf] { font-size: 0.7rem; color: #64748b; margin-top: 0.1rem; }

/* ── Mini Stat Cards ───────────────────────────────────────── */
.ds-mini-stats[b-n2t2x3z8cf] { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.5rem; margin-bottom: 0.75rem; }
.ds-mini-stat[b-n2t2x3z8cf] {
    background: #f8fafc; border-radius: 8px; padding: 0.6rem 0.75rem;
    border: 1px solid #e2e8f0; text-align: center;
}
.ds-mini-stat-label[b-n2t2x3z8cf] { font-size: 0.6rem; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.03em; }
.ds-mini-stat-value[b-n2t2x3z8cf] { font-size: 1rem; font-weight: 700; color: #1e293b; }

.ds-panel[b-n2t2x3z8cf] { background: #f8fafc; border-radius: 8px; padding: 0.75rem; border: 1px solid #e2e8f0; margin-bottom: 0.5rem; }
.ds-panel-title[b-n2t2x3z8cf] { font-size: 0.7rem; font-weight: 600; color: #334155; margin-bottom: 0.5rem; }

/* ── Empty / Loading / Error states ────────────────────────── */
.ds-empty[b-n2t2x3z8cf] {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 0.5rem; padding: 2rem; color: #94a3b8; font-size: 0.85rem; text-align: center;
}
.ds-loading[b-n2t2x3z8cf] {
    display: flex; align-items: center; justify-content: center;
    gap: 0.75rem; padding: 3rem; color: #64748b; font-size: 0.85rem;
}
.ds-spinner[b-n2t2x3z8cf] {
    width: 24px; height: 24px; border: 3px solid #e2e8f0;
    border-top-color: #3b82f6; border-radius: 50%; animation: ds-spin-b-n2t2x3z8cf 0.6s linear infinite;
}
@keyframes ds-spin-b-n2t2x3z8cf { to { transform: rotate(360deg); } }
.ds-error[b-n2t2x3z8cf] {
    display: flex; align-items: flex-start; gap: 0.6rem; margin: 1rem 1.5rem;
    padding: 0.85rem 1rem; border-radius: 8px;
    background: var(--corp-bad-bg, #fee2e2); border: 1px solid #fca5a5; color: var(--corp-bad, #991b1b);
    font-size: 0.8rem;
}
.ds-error button[b-n2t2x3z8cf] {
    margin-left: auto; padding: 0.3rem 0.75rem; border: 1px solid #fca5a5; background: #fff;
    color: #b91c1c; border-radius: 4px; font-size: 0.72rem; font-weight: 600; cursor: pointer;
}

/* ── Gauge rows ────────────────────────────────────────────── */
.ds-gauge-row[b-n2t2x3z8cf] { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0; }
.ds-gauge-label[b-n2t2x3z8cf] { font-size: 0.75rem; color: #64748b; min-width: 100px; }
.ds-gauge-bar[b-n2t2x3z8cf] { flex: 1; }
.ds-gauge-value[b-n2t2x3z8cf] { font-size: 0.8rem; font-weight: 700; min-width: 50px; text-align: right; }

/* ── Form styles (ingresos) ────────────────────────────────── */
.ds-form-row[b-n2t2x3z8cf] { display: flex; gap: 0.5rem; padding: 0.5rem 0.75rem; flex-wrap: wrap; align-items: flex-end; }
.ds-form-group[b-n2t2x3z8cf] { display: flex; flex-direction: column; gap: 0.15rem; }
.ds-form-group label[b-n2t2x3z8cf] { font-size: 0.65rem; color: #64748b; font-weight: 600; text-transform: uppercase; }
.ds-form-group input[b-n2t2x3z8cf], .ds-form-group select[b-n2t2x3z8cf], .ds-form-group textarea[b-n2t2x3z8cf] {
    padding: 0.3rem 0.4rem; border: 1px solid #e2e8f0; border-radius: 4px;
    font-size: 0.8rem; color: #334155;
}
.ds-form-group input:focus[b-n2t2x3z8cf], .ds-form-group select:focus[b-n2t2x3z8cf], .ds-form-group textarea:focus[b-n2t2x3z8cf] {
    outline: none; border-color: #94a3b8; box-shadow: 0 0 0 2px rgba(148,163,184,0.1);
}
.ds-btn-add[b-n2t2x3z8cf] {
    padding: 0.3rem 0.75rem; background: #0f766e; color: #fff; border: none;
    border-radius: 4px; font-size: 0.75rem; font-weight: 600; cursor: pointer;
    transition: background 0.15s; white-space: nowrap;
}
.ds-btn-add:hover[b-n2t2x3z8cf] { background: #0d6355; }
.ds-btn-add:disabled[b-n2t2x3z8cf] { opacity: 0.5; cursor: not-allowed; }
.ds-btn-delete[b-n2t2x3z8cf] {
    padding: 0.15rem 0.35rem; background: none; border: 1px solid #fca5a5; color: #ef4444;
    border-radius: 4px; font-size: 0.65rem; cursor: pointer; transition: all 0.15s;
}
.ds-btn-delete:hover[b-n2t2x3z8cf] { background: #fef2f2; border-color: #ef4444; }
.ds-btn-delete:disabled[b-n2t2x3z8cf] { opacity: 0.4; cursor: not-allowed; }
/* /Components/Pages/Gerencia/PagGerenciaMain.razor.rz.scp.css */
/* =============================================================
   Centro de Mando · Gerencia de Operaciones
   Prefijo gm- sobre el sistema corporativo (variables --corp-*).
   El shell/toolbar/cards/tabla vienen de corporate.css; aquí sólo
   vive lo propio de este panel.
   ============================================================= */

.gm-shell[b-t5ddp4e1xr] {
    height: calc(100vh - 60px);
    overflow: hidden;
}

/* La zona bajo la barra de stats scrollea como una sola pieza:
   el panel no se deforma con la cantidad de proyectos. */
.gm-main[b-t5ddp4e1xr] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 0.75rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Los bloques conservan su alto natural y el scroll lo hace .gm-main. Sin esto,
   al ser un contenedor flex de alto acotado, las cards se comprimen hasta
   desaparecer bajo el overflow:hidden de .corp-card en vez de generar scroll. */
.gm-main > *[b-t5ddp4e1xr] { flex: 0 0 auto; }

.gm-of[b-t5ddp4e1xr] {
    font-size: var(--corp-fs-xs);
    font-weight: 500;
    color: var(--corp-text-muted);
}

.gm-head-sub[b-t5ddp4e1xr] {
    font-weight: 400;
    text-transform: none;
    color: var(--corp-text-muted);
    font-size: var(--corp-fs-xs);
}

.gm-mono[b-t5ddp4e1xr] { font-family: var(--corp-mono); font-weight: 700; }
.gm-strong[b-t5ddp4e1xr] { font-weight: 700; }

.ok[b-t5ddp4e1xr]   { color: var(--corp-ok); }
.warn[b-t5ddp4e1xr] { color: var(--corp-warn); }
.bad[b-t5ddp4e1xr]  { color: var(--corp-bad); }

/* ── Banners / carga ─────────────────────────────────────────── */
.gm-banner[b-t5ddp4e1xr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0.6rem 1rem 0;
    padding: 0.5rem 0.75rem;
    border-radius: var(--corp-radius);
    font-size: var(--corp-fs-sm);
    border-left: 3px solid;
}

.gm-banner.bad[b-t5ddp4e1xr]  { background: var(--corp-bad-bg);  color: var(--corp-bad);  border-color: var(--corp-bad); }
.gm-banner.warn[b-t5ddp4e1xr] { background: var(--corp-warn-bg); color: var(--corp-warn); border-color: var(--corp-warn); }

.gm-loading[b-t5ddp4e1xr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 5rem 0;
    color: var(--corp-text-sub);
    font-size: var(--corp-fs-sm);
}

.gm-spinner[b-t5ddp4e1xr] {
    width: 30px;
    height: 30px;
    border: 3px solid var(--corp-border);
    border-top-color: var(--corp-accent);
    border-radius: 50%;
    animation: gm-spin-b-t5ddp4e1xr 0.8s linear infinite;
}

@keyframes gm-spin-b-t5ddp4e1xr { to { transform: rotate(360deg); } }

/* ── 1. Bandeja de decisión ──────────────────────────────────── */
.gm-inbox-grid[b-t5ddp4e1xr] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--corp-border-row);
}

.gm-inbox-item[b-t5ddp4e1xr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.75rem;
    background: var(--corp-bg-card);
    border: none;
    border-top: 2px solid transparent;
    text-align: left;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s;
    font-family: inherit;
}

.gm-inbox-item:hover[b-t5ddp4e1xr] { background: #f8fafc; }
.gm-inbox-item.pend[b-t5ddp4e1xr]  { border-top-color: var(--corp-warn); }
.gm-inbox-item.clear[b-t5ddp4e1xr] { border-top-color: var(--corp-ok); }

.gm-inbox-count[b-t5ddp4e1xr] {
    min-width: 34px;
    height: 34px;
    padding: 0 0.35rem;
    border-radius: var(--corp-radius);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    font-family: var(--corp-mono);
    flex-shrink: 0;
}

.gm-inbox-item.pend  .gm-inbox-count[b-t5ddp4e1xr] { background: var(--corp-warn-bg); color: var(--corp-warn); }
.gm-inbox-item.clear .gm-inbox-count[b-t5ddp4e1xr] { background: var(--corp-ok-bg);   color: var(--corp-ok); }

.gm-inbox-body[b-t5ddp4e1xr] { display: flex; flex-direction: column; min-width: 0; flex: 1; }

.gm-inbox-lbl[b-t5ddp4e1xr] {
    font-size: var(--corp-fs-body);
    font-weight: 600;
    color: var(--corp-navy);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gm-inbox-sub[b-t5ddp4e1xr] { font-size: var(--corp-fs-xs); color: var(--corp-text-sub); }

.gm-inbox-go[b-t5ddp4e1xr] {
    color: var(--corp-text-muted);
    font-size: 0.9rem;
    flex-shrink: 0;
}

.gm-inbox-item:hover .gm-inbox-go[b-t5ddp4e1xr] { color: var(--corp-accent); }

/* ── Grid principal: focos + pulso ───────────────────────────── */
/* Cada columna toma su alto natural (start): estirarlas dejaba un vacío blanco
   dentro de la card más corta, que se lee como contenido faltante. */
.gm-grid[b-t5ddp4e1xr] {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
    gap: 0.75rem;
    align-items: start;
}

.gm-col[b-t5ddp4e1xr] { display: flex; flex-direction: column; gap: 0.75rem; min-width: 0; }

/* ── 2. Focos de atención ────────────────────────────────────── */
.gm-focos-card[b-t5ddp4e1xr] { display: flex; flex-direction: column; }

/* El tope evita que una cartera con muchos desvíos empuje la tabla fuera de la
   pantalla: la lista scrollea dentro de la card. */
.gm-focos[b-t5ddp4e1xr] {
    display: flex;
    flex-direction: column;
    max-height: 430px;
    overflow-y: auto;
}

.gm-foco[b-t5ddp4e1xr] {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--corp-border-row);
    border-left: 3px solid transparent;
    cursor: pointer;
    transition: background 0.12s;
}

.gm-foco:last-child[b-t5ddp4e1xr] { border-bottom: none; }
.gm-foco:hover[b-t5ddp4e1xr] { background: #f8fafc; }
.gm-foco:focus-visible[b-t5ddp4e1xr] { outline: 2px solid var(--corp-accent); outline-offset: -2px; }
.gm-foco.crit[b-t5ddp4e1xr] { border-left-color: #dc2626; }
.gm-foco.warn[b-t5ddp4e1xr] { border-left-color: #d97706; }

.gm-foco-tag[b-t5ddp4e1xr] {
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-align: center;
    padding: 0.15rem 0;
    border-radius: var(--corp-radius);
}

.gm-foco.crit .gm-foco-tag[b-t5ddp4e1xr] { background: var(--corp-bad-bg);  color: var(--corp-bad); }
.gm-foco.warn .gm-foco-tag[b-t5ddp4e1xr] { background: var(--corp-warn-bg); color: var(--corp-warn); }

.gm-foco-main[b-t5ddp4e1xr] { min-width: 0; }

.gm-foco-top[b-t5ddp4e1xr] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.gm-foco-tipo[b-t5ddp4e1xr] {
    font-size: var(--corp-fs-body);
    font-weight: 700;
    color: var(--corp-navy);
}

.gm-foco-proy[b-t5ddp4e1xr] {
    font-size: var(--corp-fs-xs);
    color: var(--corp-text-sub);
    border-left: 1px solid var(--corp-border);
    padding-left: 0.4rem;
}

.gm-foco-det[b-t5ddp4e1xr] {
    font-size: var(--corp-fs-sm);
    color: var(--corp-text-main);
    margin-top: 0.1rem;
}

.gm-foco-imp[b-t5ddp4e1xr] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    flex-shrink: 0;
}

.gm-foco-imp-val[b-t5ddp4e1xr] {
    font-family: var(--corp-mono);
    font-size: var(--corp-fs-md);
    font-weight: 700;
    color: var(--corp-navy);
}

.gm-foco.crit .gm-foco-imp-val[b-t5ddp4e1xr] { color: var(--corp-bad); }

.gm-foco-imp-lbl[b-t5ddp4e1xr] {
    font-size: 0.55rem;
    color: var(--corp-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.gm-focos-ok[b-t5ddp4e1xr] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.6rem 1rem;
    font-size: var(--corp-fs-sm);
    color: var(--corp-text-main);
}

.gm-focos-ok-ico[b-t5ddp4e1xr] {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--corp-ok-bg);
    color: var(--corp-ok);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    flex-shrink: 0;
}

/* ── 3. Pulso de la cartera ──────────────────────────────────── */
.gm-sem-grid[b-t5ddp4e1xr] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.4rem;
}

.gm-sem[b-t5ddp4e1xr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.5rem 0.25rem;
    border: 1px solid var(--corp-border);
    border-radius: var(--corp-radius);
    background: var(--corp-bg-card);
    cursor: pointer;
    transition: all 0.12s;
    font-family: inherit;
}

.gm-sem:hover[b-t5ddp4e1xr] { background: var(--corp-bg-head); }

.gm-sem-val[b-t5ddp4e1xr] { font-size: 1.25rem; font-weight: 700; line-height: 1; font-family: var(--corp-mono); }

.gm-sem-lbl[b-t5ddp4e1xr] {
    font-size: 0.58rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--corp-text-sub);
    font-weight: 600;
}

.gm-sem.crit .gm-sem-val[b-t5ddp4e1xr] { color: var(--corp-bad); }
.gm-sem.warn .gm-sem-val[b-t5ddp4e1xr] { color: var(--corp-warn); }
.gm-sem.ok   .gm-sem-val[b-t5ddp4e1xr] { color: var(--corp-ok); }
.gm-sem.crit[b-t5ddp4e1xr] { border-top: 2px solid #dc2626; }
.gm-sem.warn[b-t5ddp4e1xr] { border-top: 2px solid #d97706; }
.gm-sem.ok[b-t5ddp4e1xr]   { border-top: 2px solid #16a34a; }

.gm-sep[b-t5ddp4e1xr] {
    height: 1px;
    background: var(--corp-border-row);
    margin: 0.65rem 0;
}

.gm-bar-head[b-t5ddp4e1xr] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: var(--corp-fs-sm);
    color: var(--corp-text-main);
    margin-bottom: 0.25rem;
}

/* Barra de progreso con marca de referencia (plazo / avance) */
.gm-track[b-t5ddp4e1xr] {
    position: relative;
    height: 10px;
    background: #e2e8f0;
    border-radius: 5px;
    overflow: hidden;
}

.gm-track.sm[b-t5ddp4e1xr] { height: 8px; border-radius: 4px; }

.gm-track-fill[b-t5ddp4e1xr] {
    height: 100%;
    border-radius: inherit;
    transition: width 0.3s;
}

.gm-track-fill.blue[b-t5ddp4e1xr]  { background: var(--corp-accent); }
.gm-track-fill.green[b-t5ddp4e1xr] { background: #16a34a; }
.gm-track-fill.amber[b-t5ddp4e1xr] { background: #d97706; }
.gm-track-fill.red[b-t5ddp4e1xr]   { background: #dc2626; }

.gm-track-mark[b-t5ddp4e1xr] {
    position: absolute;
    top: -2px;
    bottom: -2px;
    width: 2px;
    background: var(--corp-navy);
    transform: translateX(-1px);
}

.gm-hint[b-t5ddp4e1xr] {
    font-size: var(--corp-fs-xs);
    color: var(--corp-text-sub);
    margin-top: 0.35rem;
    line-height: 1.35;
}

.gm-kv[b-t5ddp4e1xr] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: var(--corp-fs-sm);
    color: var(--corp-text-sub);
    padding: 0.2rem 0;
}

.gm-kv b[b-t5ddp4e1xr] { font-family: var(--corp-mono); color: var(--corp-navy); }

/* Fases — en la columna ancha se reparten en dos columnas para no dejar barras
   kilométricas contra un conteo de una cifra. */
.gm-fases[b-t5ddp4e1xr] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 1.5rem;
}

.gm-fase[b-t5ddp4e1xr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.22rem 0;
}

.gm-fase-dot[b-t5ddp4e1xr] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }

.gm-fase-lbl[b-t5ddp4e1xr] {
    font-size: var(--corp-fs-sm);
    color: var(--corp-text-main);
    width: 74px;
    flex-shrink: 0;
}

.gm-fase-track[b-t5ddp4e1xr] {
    flex: 1;
    height: 6px;
    background: #e2e8f0;
    border-radius: 3px;
    overflow: hidden;
}

.gm-fase-fill[b-t5ddp4e1xr] { height: 100%; border-radius: 3px; }

.gm-fase-cnt[b-t5ddp4e1xr] {
    font-size: var(--corp-fs-sm);
    font-weight: 700;
    font-family: var(--corp-mono);
    color: var(--corp-navy);
    width: 20px;
    text-align: right;
}

/* ── 4. Tabla ejecutiva ──────────────────────────────────────── */
.gm-filtros[b-t5ddp4e1xr] { display: flex; gap: 0.3rem; flex-wrap: wrap; }

/* La cabecera de card es clara: el chip corporativo (pensado para la toolbar
   oscura) necesita contraste propio aquí. */
.gm-chip[b-t5ddp4e1xr] {
    background: var(--corp-bg-card);
    border-color: var(--corp-border);
    color: var(--corp-text-sub);
    text-transform: none;
    letter-spacing: normal;
}

.gm-chip:hover[b-t5ddp4e1xr]  { background: var(--corp-bg-head); color: var(--corp-navy); }
.gm-chip.active[b-t5ddp4e1xr] { background: var(--corp-accent); border-color: var(--corp-accent); color: #fff; }

.gm-chip-badge[b-t5ddp4e1xr] {
    display: inline-block;
    margin-left: 0.25rem;
    padding: 0 0.28rem;
    border-radius: 999px;
    background: var(--corp-bad-bg);
    color: var(--corp-bad);
    font-weight: 700;
    font-size: 0.55rem;
}

.gm-chip.active .gm-chip-badge[b-t5ddp4e1xr] { background: rgba(255,255,255,0.25); color: #fff; }

.gm-tabla-scroll[b-t5ddp4e1xr] { max-height: 460px; overflow-y: auto; }

.gm-tbl thead th[b-t5ddp4e1xr] {
    position: sticky;
    top: 0;
    z-index: 1;
}

.gm-tbl tbody td[b-t5ddp4e1xr] { vertical-align: middle; }

/* Importes e índices no se parten en dos líneas: la columna crece si hace falta. */
.gm-tbl tbody td.r[b-t5ddp4e1xr],
.gm-tbl tbody td.c[b-t5ddp4e1xr] { white-space: nowrap; }

.gm-row[b-t5ddp4e1xr] { cursor: pointer; border-left: 3px solid transparent; }
.gm-row:focus-visible[b-t5ddp4e1xr] { outline: 2px solid var(--corp-accent); outline-offset: -2px; }
.gm-row.crit[b-t5ddp4e1xr] { border-left-color: #dc2626; background: #fffbfb; }
.gm-row.warn[b-t5ddp4e1xr] { border-left-color: #d97706; }
.gm-row.closed[b-t5ddp4e1xr] { opacity: 0.62; }

.gm-proy[b-t5ddp4e1xr] {
    font-weight: 700;
    color: var(--corp-navy);
    font-size: var(--corp-fs-body);
}

.gm-proy-sub[b-t5ddp4e1xr], .gm-cell-sub[b-t5ddp4e1xr] {
    font-size: 0.58rem;
    color: var(--corp-text-sub);
    margin-top: 0.1rem;
}

.gm-cell-sub.warn[b-t5ddp4e1xr] { color: var(--corp-warn); font-weight: 600; }
.gm-cell-sub.bad[b-t5ddp4e1xr]  { color: var(--corp-bad);  font-weight: 600; }

.gm-na[b-t5ddp4e1xr] { color: var(--corp-text-muted); font-size: var(--corp-fs-xs); }

.gm-tbl .corp-pill[b-t5ddp4e1xr] { margin: 0 0.08rem; }

.gm-verd[b-t5ddp4e1xr] {
    display: inline-block;
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.15rem 0.42rem;
    border-radius: var(--corp-radius);
    white-space: nowrap;
}

.gm-verd.crit[b-t5ddp4e1xr]   { background: var(--corp-bad-bg);  color: var(--corp-bad); }
.gm-verd.warn[b-t5ddp4e1xr]   { background: var(--corp-warn-bg); color: var(--corp-warn); }
.gm-verd.ok[b-t5ddp4e1xr]     { background: var(--corp-ok-bg);   color: var(--corp-ok); }
.gm-verd.closed[b-t5ddp4e1xr] { background: #eef2f6;             color: var(--corp-text-sub); }
.gm-verd.na[b-t5ddp4e1xr]     { background: var(--corp-info-bg); color: var(--corp-info-txt); }

/* ── Nota al pie ─────────────────────────────────────────────── */
.gm-note[b-t5ddp4e1xr] {
    font-size: var(--corp-fs-xs);
    color: var(--corp-text-sub);
    line-height: 1.55;
    padding: 0.5rem 0.75rem;
    background: var(--corp-bg-head);
    border-left: 3px solid var(--corp-border);
    border-radius: var(--corp-radius);
}

.gm-note b[b-t5ddp4e1xr] { color: var(--corp-navy); }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 1400px) {
    .gm-inbox-grid[b-t5ddp4e1xr] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1100px) {
    .gm-grid[b-t5ddp4e1xr] { grid-template-columns: 1fr; }
    .gm-shell[b-t5ddp4e1xr] { height: auto; overflow: visible; }
    .gm-main[b-t5ddp4e1xr] { overflow-y: visible; }
    .gm-focos[b-t5ddp4e1xr], .gm-tabla-scroll[b-t5ddp4e1xr] { max-height: none; }
}

@media (max-width: 640px) {
    .gm-inbox-grid[b-t5ddp4e1xr] { grid-template-columns: 1fr; }
    .gm-sem-grid[b-t5ddp4e1xr] { grid-template-columns: 1fr; }
}

/* ── Impresión ───────────────────────────────────────────────── */
@media print {
    .gm-shell[b-t5ddp4e1xr] { height: auto; overflow: visible; }
    .gm-main[b-t5ddp4e1xr] { overflow: visible; padding: 0; }
    .gm-focos[b-t5ddp4e1xr], .gm-tabla-scroll[b-t5ddp4e1xr] { max-height: none; overflow: visible; }
    .gm-inbox-item[b-t5ddp4e1xr], .gm-sem[b-t5ddp4e1xr] { cursor: default; }
    .gm-tbl thead th[b-t5ddp4e1xr] { position: static; }
}
/* /Components/Pages/Ingenieria/ComCronograma.razor.rz.scp.css */
.cronograma-wrapper[b-rbl8uo4h1q] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 280px);
    min-height: 400px;
}

/* ── Empty / Coming-soon state ── */
.cronograma-empty[b-rbl8uo4h1q] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 3rem 2rem;
    background: linear-gradient(135deg, #f0fdfa 0%, #f1f5f9 100%);
    border-radius: 12px;
}

.cronograma-empty-icon[b-rbl8uo4h1q] {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ccfbf1, #99f6e4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    margin-bottom: 1.25rem;
}

.cronograma-empty-title[b-rbl8uo4h1q] {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 0.5rem;
}

.cronograma-empty-text[b-rbl8uo4h1q] {
    color: #64748b;
    max-width: 420px;
    font-size: 0.85rem;
    line-height: 1.6;
    margin: 0;
}

/* ── Feature cards ── */
.cronograma-features[b-rbl8uo4h1q] {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 1.75rem;
}

.cronograma-feature-card[b-rbl8uo4h1q] {
    background: white;
    padding: 1rem 1.5rem;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
    transition: transform 0.15s, box-shadow 0.15s;
}

.cronograma-feature-card:hover[b-rbl8uo4h1q] {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.cronograma-feature-icon[b-rbl8uo4h1q] {
    font-size: 1.5rem;
    margin-bottom: 0.25rem;
}

.cronograma-feature-label[b-rbl8uo4h1q] {
    font-size: 0.75rem;
    color: #64748b;
    font-weight: 600;
}

/* ── Create button ── */
.cronograma-btn-crear[b-rbl8uo4h1q] {
    margin-top: 2rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.5rem;
    border: none;
    border-radius: 8px;
    background: linear-gradient(135deg, #0f766e, #14b8a6);
    color: white;
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s;
}

.cronograma-btn-crear:hover[b-rbl8uo4h1q] {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(15, 118, 110, 0.35);
}

/* ── Gantt container ── */
.cronograma-gantt[b-rbl8uo4h1q] {
    flex: 1;
    width: 100%;
    height: 100%;
    padding: 1rem;
    overflow: hidden;
    box-sizing: border-box;
}

/* ── Toolbar ── */
.cronograma-toolbar[b-rbl8uo4h1q] {
    display: flex;
    justify-content: flex-end;
    padding: 0.5rem 1rem 0;
}

.cronograma-btn-config[b-rbl8uo4h1q] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 1rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: white;
    color: #334155;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, box-shadow 0.15s;
}

.cronograma-btn-config:hover[b-rbl8uo4h1q] {
    background: #f1f5f9;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* ── Config dialog sections ── */
.config-section[b-rbl8uo4h1q] {
    margin-bottom: 1.5rem;
}

.config-section h4[b-rbl8uo4h1q] {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1e293b;
}

.config-days-grid[b-rbl8uo4h1q] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
}

.config-hours-grid[b-rbl8uo4h1q] {
    display: flex;
    gap: 1.5rem;
}

.config-hours-grid > div[b-rbl8uo4h1q] {
    flex: 1;
}

.config-hours-grid label[b-rbl8uo4h1q] {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 0.3rem;
}

/* ── Feriado form ── */
.config-feriado-form[b-rbl8uo4h1q] {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
    margin-bottom: 0.75rem;
}

.cronograma-btn-add[b-rbl8uo4h1q] {
    padding: 0.45rem 1rem;
    border: none;
    border-radius: 6px;
    background: #0f766e;
    color: white;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.cronograma-btn-add:disabled[b-rbl8uo4h1q] {
    opacity: 0.5;
    cursor: not-allowed;
}

.config-feriados-table[b-rbl8uo4h1q] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.config-feriados-table th[b-rbl8uo4h1q] {
    text-align: left;
    padding: 0.4rem 0.5rem;
    border-bottom: 2px solid #e2e8f0;
    color: #64748b;
    font-weight: 600;
}

.config-feriados-table td[b-rbl8uo4h1q] {
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid #f1f5f9;
}

.cronograma-btn-del[b-rbl8uo4h1q] {
    border: none;
    background: transparent;
    color: #ef4444;
    font-size: 0.9rem;
    cursor: pointer;
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
}

.cronograma-btn-del:hover[b-rbl8uo4h1q] {
    background: #fef2f2;
}

.config-no-feriados[b-rbl8uo4h1q] {
    color: #94a3b8;
    font-size: 0.82rem;
    font-style: italic;
    margin: 0.5rem 0 0;
}

/* ── Config dialog tabs ── */
.config-tabs[b-rbl8uo4h1q] {
    display: flex;
    gap: 0;
    border-bottom: 2px solid #e2e8f0;
    margin-bottom: 1.25rem;
}

.config-tab[b-rbl8uo4h1q] {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.65rem 1rem;
    border: none;
    background: transparent;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
}

.config-tab:hover[b-rbl8uo4h1q] {
    color: #0f766e;
    background: #f0fdfa;
}

.config-tab.active[b-rbl8uo4h1q] {
    color: #0f766e;
    border-bottom-color: #0f766e;
}

.config-tab-content[b-rbl8uo4h1q] {
    min-height: 200px;
}
/* /Components/Pages/Ingenieria/CompGestionPresupuesto.razor.rz.scp.css */
/* Container */
.budget-container[b-db9tkv6qol] {
    padding: 0.75rem;
    height: calc(100vh - 280px);
}
/* Header compacto - Minimalist */
.budget-header[b-db9tkv6qol] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    border-bottom: 1px solid #e2e8f0;
    padding: 0.5rem 0.25rem;
    margin-bottom: 0.75rem;
    color: #334155;
}

.header-left[b-db9tkv6qol] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.header-left > i[b-db9tkv6qol] {
    font-size: 1rem;
    color: #64748b;
}

.project-name[b-db9tkv6qol] {
    font-weight: 600;
    font-size: 1rem;
    color: #0f172a;
}

.badge-stats[b-db9tkv6qol] {
    background: #f1f5f9;
    color: #64748b;
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
    border: 1px solid #e2e8f0;
}

.btn-new-ficha[b-db9tkv6qol] {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    color: #475569;
    padding: 0.3rem 0.75rem;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
}

.btn-new-ficha:hover[b-db9tkv6qol] {
    background: #f8fafc;
    border-color: #94a3b8;
    color: #1e293b;
}

.btn-new-ficha i[b-db9tkv6qol] {
    margin-right: 0.35rem;
}

/* Card */
.budget-card[b-db9tkv6qol] {
    background: white;
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); /* Subtle shadow */
    overflow: hidden;
    border: 1px solid #e2e8f0;
}

/* Tabla compacta */
.budget-table[b-db9tkv6qol] {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.budget-table thead[b-db9tkv6qol] {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.budget-table thead th[b-db9tkv6qol] {
    padding: 0.6rem 0.75rem;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    text-align: left;
}

.budget-table thead th:nth-child(n+4)[b-db9tkv6qol] {
    text-align: right;
}

.budget-table thead th:last-child[b-db9tkv6qol] {
    text-align: center;
}

/* Filas de grupo - Neutral */
.group-row[b-db9tkv6qol] {
    background: #f8fafc; /* Very light cool gray */
}

.group-row td[b-db9tkv6qol] {
    padding: 0.5rem 0.75rem;
    font-weight: 600;
    font-size: 0.8rem;
    color: #334155;
    border-bottom: 1px solid #e2e8f0;
    border-top: 1px solid #e2e8f0;
}

.group-row i[b-db9tkv6qol] {
    color: #94a3b8; /* Muted icon */
    margin-right: 0.35rem;
    font-size: 0.8rem;
}

.group-num[b-db9tkv6qol] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    background: #e2e8f0;
    color: #475569;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 700;
}

.amt-group[b-db9tkv6qol] {
    font-family: 'Consolas', monospace;
    font-weight: 700;
    color: #334155;
}

/* Filas de items */
.item-row td[b-db9tkv6qol] {
    padding: 0.4rem 0.75rem;
    border-bottom: 1px solid #f1f5f9;
    color: #4b5563;
}

.item-row:last-child td[b-db9tkv6qol] {
    border-bottom: none;
}

.item-row:hover[b-db9tkv6qol] {
    background: #fcfcfc;
}

.item-row .num[b-db9tkv6qol] {
    color: #9ca3af;
    font-family: 'Consolas', monospace;
    font-size: 0.75rem;
}

.item-row .desc[b-db9tkv6qol] {
    font-weight: 400;
    color: #334155;
}

.item-row .unit[b-db9tkv6qol] {
    text-align: center;
    color: #94a3b8;
    font-size: 0.75rem;
}

.item-row .amt[b-db9tkv6qol] {
    text-align: right;
    font-family: 'Consolas', monospace;
    color: #4b5563;
}

.item-row .actions[b-db9tkv6qol] {
    text-align: center;
}

/* Input Styles */
.budget-input[b-db9tkv6qol] {
    border: 1px solid transparent !important;
    background-color: transparent !important;
    transition: all 0.2s ease;
    width: 100%;
    padding: 0.15rem 0.5rem;
    font-size: 0.8rem;
    font-family: 'Consolas', monospace;
}

.budget-input:focus[b-db9tkv6qol] {
    border-color: #cbd5e1 !important;
    background-color: #ffffff !important;
    box-shadow: 0 0 0 2px rgba(203, 213, 225, 0.3) !important;
    outline: none;
}

/* Custom action buttons inside table */
.item-row .btn-outline-primary[b-db9tkv6qol] {
    color: #64748b;
    border-color: transparent;
}
.item-row .btn-outline-primary:hover[b-db9tkv6qol] {
    color: #2563eb;
    background: #eff6ff;
    border-color: #bfdbfe;
}

.item-row .btn-outline-danger[b-db9tkv6qol] {
    color: #64748b;
    border-color: transparent;
}
.item-row .btn-outline-danger:hover[b-db9tkv6qol] {
    color: #dc2626;
    background: #fef2f2;
    border-color: #fecaca;
}


/* Footer total */
.total-row[b-db9tkv6qol] {
    background: #f8fafc;
    border-top: 2px solid #e2e8f0;
}

.total-row td[b-db9tkv6qol] {
    padding: 0.75rem;
    color: #0f172a;
    font-weight: 700;
    font-size: 0.9rem;
    border: none;
}

.total-row td:nth-child(2)[b-db9tkv6qol] {
    font-family: 'Consolas', monospace;
}

/* Loading */
.loading-container[b-db9tkv6qol] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 2rem;
    color: #6b7280;
    font-size: 0.85rem;
}

.loading-spinner[b-db9tkv6qol] {
    width: 20px;
    height: 20px;
    border: 2px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-db9tkv6qol 0.6s linear infinite;
}

@keyframes spin-b-db9tkv6qol {
    to { transform: rotate(360deg); }
}

/* Empty state */
.empty-state[b-db9tkv6qol] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem;
    color: #9ca3af;
    font-size: 0.85rem;
}

.empty-state i[b-db9tkv6qol] {
    font-size: 1.25rem;
}

/* Responsive */
@media (max-width: 768px) {
    .budget-container[b-db9tkv6qol] {
        padding: 0.5rem;
    }

    .budget-header[b-db9tkv6qol] {
        padding: 0.4rem 0.75rem;
    }

    .project-name[b-db9tkv6qol] {
        font-size: 0.85rem;
    }

    .budget-table[b-db9tkv6qol] {
        font-size: 0.75rem;
    }
}

/* Drag-and-drop */
.drag-handle[b-db9tkv6qol] {
    cursor: grab;
    user-select: none;
}

.drag-handle:active[b-db9tkv6qol] {
    cursor: grabbing;
}

tr.dragging[b-db9tkv6qol] {
    opacity: 0.4;
}

tr.drag-over[b-db9tkv6qol] {
    box-shadow: inset 0 -2px 0 0 #3b82f6;
}

.group-row.drag-over[b-db9tkv6qol] {
    box-shadow: inset 0 -3px 0 0 #2563eb;
    background: #eff6ff;
}

.item-row.drag-over[b-db9tkv6qol] {
    background: #f0f9ff;
}
/* /Components/Pages/Ingenieria/CompPresupuestoCronograma.razor.rz.scp.css */
/* ═══════════════════════════════════════════
   CompPresupuestoCronograma – Full-width Gantt
   ═══════════════════════════════════════════ */

.pc-container[b-xomt0iy5ir] {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 280px);
    min-height: 500px;
}

/* ── Toolbar ── */
.pc-toolbar[b-xomt0iy5ir] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #e2e8f0;
    background: #fafbfc;
    flex-shrink: 0;
}

.pc-toolbar-left[b-xomt0iy5ir] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pc-panel-icon[b-xomt0iy5ir] {
    font-size: 0.95rem;
}

.pc-project-name[b-xomt0iy5ir] {
    font-weight: 600;
    font-size: 0.95rem;
    color: #0f172a;
}

.pc-badge[b-xomt0iy5ir] {
    background: #f1f5f9;
    color: #64748b;
    padding: 0.12rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.72rem;
    font-weight: 500;
    border: 1px solid #e2e8f0;
}

.pc-badge-gantt[b-xomt0iy5ir] {
    background: #f0fdfa;
    color: #0f766e;
    border-color: #ccfbf1;
}

.pc-toolbar-right[b-xomt0iy5ir] {
    display: flex;
    gap: 0.4rem;
}

/* ── Buttons ── */
.pc-btn[b-xomt0iy5ir] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.7rem;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #475569;
}

.pc-btn:hover[b-xomt0iy5ir] {
    background: #f8fafc;
    border-color: #94a3b8;
}

.pc-btn-new[b-xomt0iy5ir] {
    background: #0f766e;
    color: white;
    border-color: #0f766e;
}

.pc-btn-new:hover[b-xomt0iy5ir] {
    background: #0d6e66;
    border-color: #0d6e66;
}

.pc-btn-export[b-xomt0iy5ir] {
    color: #16a34a;
    border-color: #bbf7d0;
}

.pc-btn-export:hover[b-xomt0iy5ir] {
    background: #f0fdf4;
}

.pc-btn-generate[b-xomt0iy5ir] {
    border: none;
    background: linear-gradient(135deg, #0f766e, #14b8a6);
    color: white;
    padding: 0.5rem 1.25rem;
    border-radius: 8px;
    font-weight: 700;
    margin-top: 1rem;
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s;
}

.pc-btn-generate:hover[b-xomt0iy5ir] {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(15, 118, 110, 0.35);
}

.pc-btn-add[b-xomt0iy5ir] {
    border: none;
    background: #0f766e;
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 6px;
    font-weight: 700;
    font-size: 0.78rem;
    white-space: nowrap;
    cursor: pointer;
}

.pc-btn-add:disabled[b-xomt0iy5ir] {
    opacity: 0.5;
    cursor: not-allowed;
}

.pc-btn-del[b-xomt0iy5ir] {
    border: none;
    background: transparent;
    color: #ef4444;
    font-size: 0.9rem;
    cursor: pointer;
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
}

.pc-btn-del:hover[b-xomt0iy5ir] {
    background: #fef2f2;
}

/* ── Full-width Gantt ── */
.pc-gantt-full[b-xomt0iy5ir] {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    width: 100%;
}

.pc-gantt-empty[b-xomt0iy5ir] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 3rem 2rem;
    background: linear-gradient(135deg, #f0fdfa 0%, #f1f5f9 100%);
}

.pc-gantt-empty-icon[b-xomt0iy5ir] {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ccfbf1, #99f6e4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin-bottom: 1rem;
}

.pc-gantt-empty-title[b-xomt0iy5ir] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 0.4rem;
}

.pc-gantt-empty-text[b-xomt0iy5ir] {
    color: #64748b;
    max-width: 420px;
    font-size: 0.85rem;
    line-height: 1.5;
    margin: 0;
}

/* ── Loading ── */
.pc-loading[b-xomt0iy5ir] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    color: #6b7280;
    font-size: 0.85rem;
}

.pc-spinner[b-xomt0iy5ir] {
    width: 20px;
    height: 20px;
    border: 2px solid #e5e7eb;
    border-top-color: #14b8a6;
    border-radius: 50%;
    animation: pc-spin-b-xomt0iy5ir 0.6s linear infinite;
}

@keyframes pc-spin-b-xomt0iy5ir {
    to {
        transform: rotate(360deg);
    }
}

/* ── Config dialog ── */
.pc-config-tabs[b-xomt0iy5ir] {
    display: flex;
    gap: 0;
    border-bottom: 2px solid #e2e8f0;
    margin-bottom: 1.25rem;
}

.pc-config-tab[b-xomt0iy5ir] {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.65rem 1rem;
    border: none;
    background: transparent;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
}

.pc-config-tab:hover[b-xomt0iy5ir] {
    color: #0f766e;
    background: #f0fdfa;
}

.pc-config-tab.active[b-xomt0iy5ir] {
    color: #0f766e;
    border-bottom-color: #0f766e;
}

.pc-config-content[b-xomt0iy5ir] {
    min-height: 200px;
}

.pc-config-section[b-xomt0iy5ir] {
    margin-bottom: 1.5rem;
}

.pc-config-section h4[b-xomt0iy5ir] {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1e293b;
}

.pc-config-days[b-xomt0iy5ir] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
}

.pc-config-hours[b-xomt0iy5ir] {
    display: flex;
    gap: 1.5rem;
}

.pc-config-hours > div[b-xomt0iy5ir] {
    flex: 1;
}

.pc-config-hours label[b-xomt0iy5ir] {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 0.3rem;
}

.pc-config-form-row[b-xomt0iy5ir] {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
    margin-bottom: 0.75rem;
}

.pc-config-table[b-xomt0iy5ir] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.pc-config-table th[b-xomt0iy5ir] {
    text-align: left;
    padding: 0.4rem 0.5rem;
    border-bottom: 2px solid #e2e8f0;
    color: #64748b;
    font-weight: 600;
}

.pc-config-table td[b-xomt0iy5ir] {
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid #f1f5f9;
}

.pc-no-items[b-xomt0iy5ir] {
    color: #94a3b8;
    font-size: 0.82rem;
    font-style: italic;
    margin: 0.5rem 0 0;
}

/* ── Row action buttons inside Gantt ── */
.pc-row-actions[b-xomt0iy5ir] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
}

.pc-row-btn[b-xomt0iy5ir] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 1px solid transparent;
    border-radius: 5px;
    background: transparent;
    cursor: pointer;
    font-size: 0.82rem;
    color: #94a3b8;
    transition: all 0.15s;
    padding: 0;
}

.pc-row-btn:hover[b-xomt0iy5ir] {
    transform: scale(1.1);
}

.pc-row-btn-edit:hover[b-xomt0iy5ir] {
    color: #2563eb;
    background: #eff6ff;
    border-color: #bfdbfe;
}

.pc-row-btn-delete:hover[b-xomt0iy5ir] {
    color: #dc2626;
    background: #fef2f2;
    border-color: #fecaca;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .pc-toolbar[b-xomt0iy5ir] {
        flex-direction: column;
        gap: 0.5rem;
        align-items: stretch;
    }

    .pc-toolbar-right[b-xomt0iy5ir] {
        justify-content: flex-end;
    }
}
/* /Components/Pages/Ingenieria/DialogDisenoEvaluacion.razor.rz.scp.css */
/* Diálogo Diseñar Evaluación — estilo corporativo (corp-*) */

.dlg-diseno-title[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--corp-fs-lg);
    font-weight: 700;
    color: var(--corp-navy);
}

.dlg-diseno-title-icon[b-0zgy9el8bb] {
    width: 26px;
    height: 26px;
    border-radius: var(--corp-radius);
    background: var(--corp-accent);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

    .dlg-diseno-title-icon .e-icons[b-0zgy9el8bb] {
        font-size: var(--corp-fs-md);
        color: #fff;
        line-height: 1;
    }

.dlg-diseno-title-activity[b-0zgy9el8bb] {
    font-weight: 400;
    color: var(--corp-text-sub);
    font-size: var(--corp-fs-sm);
}

.dlg-diseno-body[b-0zgy9el8bb] {
    min-width: 620px;
    height: 68vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.25rem 0.15rem;
}

/* Notice banner */
.dlg-diseno-notice[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.85rem;
    background: var(--corp-info-bg);
    border: 1px solid #bfdbfe;
    border-left: 3px solid var(--corp-accent);
    border-radius: var(--corp-radius);
    font-size: var(--corp-fs-sm);
    color: var(--corp-info-txt);
    line-height: 1.5;
}

    .dlg-diseno-notice .e-icons[b-0zgy9el8bb] {
        font-size: var(--corp-fs-lg);
        color: var(--corp-accent);
        flex-shrink: 0;
        line-height: 1;
    }

/* Group card */
.dlg-diseno-group[b-0zgy9el8bb] {
    border: 1px solid var(--corp-border);
    border-left: 3px solid var(--corp-accent);
    border-radius: var(--corp-radius);
    padding: 0;
    background: var(--corp-bg-card);
    transition: box-shadow 0.15s;
    overflow: hidden;
}

    .dlg-diseno-group:hover[b-0zgy9el8bb] {
        box-shadow: 0 2px 10px rgba(30, 58, 90, 0.06);
    }

.dlg-diseno-group-header[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.85rem;
    cursor: pointer;
    user-select: none;
    background: var(--corp-bg-head);
    transition: background 0.15s;
}

    .dlg-diseno-group-header:hover[b-0zgy9el8bb] {
        background: #eef2f6;
    }

    .dlg-diseno-group.expanded .dlg-diseno-group-header[b-0zgy9el8bb] {
        border-bottom: 1px solid var(--corp-border);
    }

.dlg-diseno-group-left[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
}

/* Chevron for group accordion */
.e-icons.dlg-diseno-chevron[b-0zgy9el8bb] {
    font-size: 0.85rem;
    color: var(--corp-accent);
    transition: transform 0.2s ease;
    flex-shrink: 0;
    width: 14px;
    text-align: center;
    line-height: 1;
}

    .e-icons.dlg-diseno-chevron.rotated[b-0zgy9el8bb] {
        transform: rotate(90deg);
    }

.e-icons.dlg-diseno-icon-preview[b-0zgy9el8bb] {
    font-size: var(--corp-fs-lg);
    color: var(--corp-navy);
    width: 20px;
    text-align: center;
    line-height: 1;
}

/* Group name displayed in header */
.dlg-diseno-group-name[b-0zgy9el8bb] {
    font-size: var(--corp-fs-sm);
    font-weight: 700;
    color: var(--corp-navy);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Badge showing param count when collapsed */
.dlg-diseno-group-badge[b-0zgy9el8bb] {
    font-size: var(--corp-fs-xs);
    font-weight: 700;
    color: var(--corp-accent);
    background: var(--corp-info-bg);
    padding: 1px 7px;
    border-radius: 10px;
    margin-left: 0.25rem;
    flex-shrink: 0;
}

/* Expanded group content area */
.dlg-diseno-group-content[b-0zgy9el8bb] {
    padding: 0.75rem 0.85rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Group edit row (icon select + name input) */
.dlg-diseno-group-edit-row[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.dlg-diseno-icon-select[b-0zgy9el8bb] {
    width: 130px;
    font-size: var(--corp-fs-sm);
    padding: 0.3rem 0.55rem;
    border: 1px solid var(--corp-border);
    border-radius: var(--corp-radius);
    background: #fff;
    color: var(--corp-text-main);
    cursor: pointer;
    transition: border-color 0.15s;
    box-sizing: border-box;
}

    .dlg-diseno-icon-select:focus[b-0zgy9el8bb] {
        outline: none;
        border-color: var(--corp-accent);
    }

.dlg-diseno-group-input[b-0zgy9el8bb] {
    flex: 1;
    font-size: var(--corp-fs-sm);
    font-weight: 700;
    padding: 0.3rem 0.55rem;
    border: 1px solid var(--corp-border);
    border-radius: var(--corp-radius);
    background: #fff;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--corp-navy);
    transition: border-color 0.15s;
    box-sizing: border-box;
}

    .dlg-diseno-group-input:focus[b-0zgy9el8bb] {
        outline: none;
        border-color: var(--corp-accent);
    }

/* Parameter card */
.dlg-diseno-param-card[b-0zgy9el8bb] {
    background: #fff;
    border: 1px solid var(--corp-border);
    border-radius: var(--corp-radius);
    padding: 0.6rem 0.7rem;
    transition: border-color 0.15s, box-shadow 0.15s;
}

    .dlg-diseno-param-card.collapsed[b-0zgy9el8bb] {
        padding: 0;
        cursor: pointer;
    }

        .dlg-diseno-param-card.collapsed:hover[b-0zgy9el8bb] {
            border-color: var(--corp-accent);
            background: #f8fafc;
        }

    .dlg-diseno-param-card.expanded[b-0zgy9el8bb] {
        border-color: var(--corp-accent);
        box-shadow: 0 1px 5px rgba(21, 101, 192, 0.08);
    }

/* Parameter summary row (collapsed) */
.dlg-diseno-param-summary[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.6rem;
}

.e-icons.dlg-diseno-chevron-sm[b-0zgy9el8bb] {
    font-size: 0.7rem;
    color: var(--corp-text-muted);
    flex-shrink: 0;
    width: 12px;
    text-align: center;
    line-height: 1;
}

.dlg-diseno-param-summary-name[b-0zgy9el8bb] {
    font-size: var(--corp-fs-body);
    font-weight: 600;
    color: var(--corp-text-main);
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dlg-diseno-param-summary-type[b-0zgy9el8bb] {
    font-size: var(--corp-fs-xs);
    font-weight: 700;
    color: var(--corp-text-sub);
    background: var(--corp-bg-head);
    border: 1px solid var(--corp-border-row);
    padding: 1px 7px;
    border-radius: 10px;
    flex-shrink: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.dlg-diseno-param-row[b-0zgy9el8bb] {
    display: flex;
    gap: 0.55rem;
    align-items: flex-end;
    margin-bottom: 0.5rem;
}

    .dlg-diseno-param-row:last-child[b-0zgy9el8bb] {
        margin-bottom: 0;
    }

/* Field styling */
.dlg-diseno-field[b-0zgy9el8bb] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    flex: 1;
}

    .dlg-diseno-field.full[b-0zgy9el8bb] {
        flex: 1 1 100%;
    }

/* Bool toggle */
.dlg-diseno-bool-toggle[b-0zgy9el8bb] {
    display: flex;
    gap: 0;
    border-radius: var(--corp-radius);
    overflow: hidden;
    border: 1px solid var(--corp-border);
}

.dlg-diseno-bool-btn[b-0zgy9el8bb] {
    padding: 0.32rem 0.85rem;
    font-size: var(--corp-fs-sm);
    font-weight: 600;
    border: none;
    background: #fff;
    color: var(--corp-text-sub);
    cursor: pointer;
    transition: all 0.15s;
    flex: 1;
    text-align: center;
}

    .dlg-diseno-bool-btn.si.active[b-0zgy9el8bb] {
        background: var(--corp-ok-bg);
        color: var(--corp-ok);
    }

    .dlg-diseno-bool-btn.no.active[b-0zgy9el8bb] {
        background: var(--corp-bad-bg);
        color: var(--corp-bad);
    }

    .dlg-diseno-bool-btn:hover:not(.active)[b-0zgy9el8bb] {
        background: #f1f5f9;
    }

/* Delete buttons */
.dlg-diseno-btn-delete[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid #fca5a5;
    border-radius: var(--corp-radius);
    background: #fff;
    color: var(--corp-bad);
    cursor: pointer;
    font-size: var(--corp-fs-sm);
    flex-shrink: 0;
    transition: all 0.15s;
}

    .dlg-diseno-btn-delete:hover[b-0zgy9el8bb] {
        background: var(--corp-bad-bg);
    }

.dlg-diseno-btn-delete-param[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: none;
    border-radius: var(--corp-radius);
    background: transparent;
    color: var(--corp-text-muted);
    cursor: pointer;
    font-size: var(--corp-fs-sm);
    flex-shrink: 0;
    transition: all 0.15s;
    align-self: center;
}

    .dlg-diseno-btn-delete-param:hover[b-0zgy9el8bb] {
        background: var(--corp-bad-bg);
        color: var(--corp-bad);
    }

/* Add buttons */
.dlg-diseno-btn-add-param[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    justify-content: center;
    padding: 0.4rem 0.85rem;
    margin-top: 0.5rem;
    font-size: var(--corp-fs-sm);
    font-weight: 600;
    border: 1px dashed #9db8d6;
    border-radius: var(--corp-radius);
    background: transparent;
    color: var(--corp-accent);
    cursor: pointer;
    transition: all 0.15s;
    width: 100%;
}

    .dlg-diseno-btn-add-param:hover[b-0zgy9el8bb] {
        background: var(--corp-info-bg);
        border-color: var(--corp-accent);
    }

.dlg-diseno-btn-add-group[b-0zgy9el8bb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    justify-content: center;
    padding: 0.65rem;
    font-size: var(--corp-fs-md);
    font-weight: 600;
    border: 2px dashed #9db8d6;
    border-radius: var(--corp-radius);
    background: transparent;
    color: var(--corp-accent);
    cursor: pointer;
    transition: all 0.15s;
    width: 100%;
}

    .dlg-diseno-btn-add-group:hover[b-0zgy9el8bb] {
        background: var(--corp-info-bg);
        border-color: var(--corp-accent);
    }

/* Íconos e-icons dentro de botones: heredan color y toman tamaño acorde al botón */
.dlg-diseno-btn-delete .e-icons[b-0zgy9el8bb],
.dlg-diseno-btn-delete-param .e-icons[b-0zgy9el8bb] {
    font-size: 0.85rem;
    color: inherit;
    line-height: 1;
}

.dlg-diseno-btn-add-param .e-icons[b-0zgy9el8bb],
.dlg-diseno-btn-add-group .e-icons[b-0zgy9el8bb] {
    font-size: var(--corp-fs-md);
    color: inherit;
    line-height: 1;
}
/* /Components/Pages/PM/ComAsignacionOT.razor.rz.scp.css */
/* Asignación OT — estilo corporativo oscuro */
.otc-root[b-7w2fl8jgio] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    font-family: 'Segoe UI', Roboto, sans-serif;
    color: #1e3a5a;
}

/* Toolbar strip */
.otc-toolstrip[b-7w2fl8jgio] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #1a2a3a;
    border: 1px solid #1565c0;
    border-radius: 4px;
    padding: 0.35rem 0.6rem;
    color: #e2e8f0;
}

.otc-tabs[b-7w2fl8jgio] {
    display: flex;
    gap: 0.25rem;
}

.otc-tab[b-7w2fl8jgio] {
    background: transparent;
    color: #94a3b8;
    border: 1px solid transparent;
    padding: 0.35rem 0.75rem;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    letter-spacing: 0.02em;
}

    .otc-tab:hover[b-7w2fl8jgio] {
        background: #243447;
        color: #e2e8f0;
    }

    .otc-tab.active[b-7w2fl8jgio] {
        background: #1565c0;
        color: #fff;
        border-color: #1976d2;
    }

.otc-tab-icon[b-7w2fl8jgio] {
    font-size: 0.85rem;
}

.otc-badge[b-7w2fl8jgio] {
    background: #1976d2;
    color: #fff;
    font-size: 0.65rem;
    padding: 0.05rem 0.35rem;
    border-radius: 8px;
    margin-left: 0.25rem;
}

.otc-tool-actions .otc-btn-sm[b-7w2fl8jgio] {
    background: #243447;
    border: 1px solid #334155;
    color: #e2e8f0;
    padding: 0.3rem 0.7rem;
    font-size: 0.72rem;
    border-radius: 3px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

    .otc-tool-actions .otc-btn-sm:hover[b-7w2fl8jgio] {
        background: #1565c0;
    }

/* Stats bar horizontal */
.otc-statsbar[b-7w2fl8jgio] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    padding: 0.5rem 0.85rem;
}

.otc-stat[b-7w2fl8jgio] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.otc-stat-lbl[b-7w2fl8jgio] {
    font-size: 0.65rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.otc-stat-val[b-7w2fl8jgio] {
    font-size: 0.95rem;
    font-weight: 700;
    color: #1e3a5a;
}

.otc-stat-sep[b-7w2fl8jgio] {
    width: 1px;
    height: 24px;
    background: #e2e8f0;
}

.otc-stat-ok[b-7w2fl8jgio] { color: #15803d; }
.otc-stat-bad[b-7w2fl8jgio] { color: #b91c1c; }
.otc-stat-warn[b-7w2fl8jgio] { color: #b45309; }

/* Section */
.otc-section[b-7w2fl8jgio] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    padding: 0.65rem 0.85rem;
}

.otc-section-head[b-7w2fl8jgio] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e2e8f0;
    margin-bottom: 0.5rem;
}

.otc-section-title[b-7w2fl8jgio] {
    font-size: 0.85rem;
    font-weight: 700;
    color: #1e3a5a;
}

.otc-section-sub[b-7w2fl8jgio] {
    font-size: 0.7rem;
    color: #64748b;
}

/* Tables */
.otc-table[b-7w2fl8jgio], .otc-subtable[b-7w2fl8jgio] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.75rem;
}

    .otc-table thead th[b-7w2fl8jgio],
    .otc-subtable thead th[b-7w2fl8jgio] {
        background: #f1f5f9;
        color: #475569;
        text-align: left;
        font-weight: 600;
        font-size: 0.68rem;
        padding: 0.4rem 0.5rem;
        border-bottom: 1px solid #cbd5e1;
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }

    .otc-table tbody td[b-7w2fl8jgio],
    .otc-subtable tbody td[b-7w2fl8jgio] {
        padding: 0.4rem 0.5rem;
        border-bottom: 1px solid #f1f5f9;
        vertical-align: top;
    }

    .otc-table tbody tr:hover[b-7w2fl8jgio] {
        background: #f8fafc;
    }

.ta-right[b-7w2fl8jgio] { text-align: right; }
.ta-center[b-7w2fl8jgio] { text-align: center; }

.otc-mono[b-7w2fl8jgio] {
    font-variant-numeric: tabular-nums;
    font-family: 'Consolas', 'Segoe UI', monospace;
}

.otc-task[b-7w2fl8jgio] {
    font-weight: 600;
    color: #1e3a5a;
    font-size: 0.78rem;
}

.otc-task-sub[b-7w2fl8jgio] {
    font-size: 0.65rem;
    color: #64748b;
}

.otc-muted[b-7w2fl8jgio] { color: #94a3b8; }
.otc-obs[b-7w2fl8jgio] {
    color: #475569;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Pills */
.otc-pill[b-7w2fl8jgio] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    font-size: 0.65rem;
    font-weight: 600;
    border-radius: 8px;
    letter-spacing: 0.03em;
}

.otc-pill-ok[b-7w2fl8jgio] { background: #dcfce7; color: #166534; }
.otc-pill-warn[b-7w2fl8jgio] { background: #fef3c7; color: #92400e; }
.otc-pill-bad[b-7w2fl8jgio] { background: #fee2e2; color: #991b1b; }
.otc-pill-off[b-7w2fl8jgio] { background: #e2e8f0; color: #475569; }

/* Progress bar */
.otc-progress[b-7w2fl8jgio] {
    position: relative;
    background: #f1f5f9;
    height: 16px;
    border-radius: 2px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
}

.otc-progress-bar[b-7w2fl8jgio] {
    height: 100%;
    transition: width 0.3s ease;
}

.otc-prog-ok[b-7w2fl8jgio] { background: linear-gradient(90deg, #16a34a, #15803d); }
.otc-prog-mid[b-7w2fl8jgio] { background: linear-gradient(90deg, #f59e0b, #d97706); }
.otc-prog-low[b-7w2fl8jgio] { background: linear-gradient(90deg, #ef4444, #dc2626); }
.otc-prog-zero[b-7w2fl8jgio] { background: #cbd5e1; }

.otc-progress-txt[b-7w2fl8jgio] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    font-weight: 700;
    color: #1e293b;
    mix-blend-mode: difference;
}

/* Buttons */
.otc-btn-asignar[b-7w2fl8jgio] {
    background: #1565c0;
    color: #fff;
    border: none;
    padding: 0.3rem 0.75rem;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 3px;
    cursor: pointer;
}

    .otc-btn-asignar:hover[b-7w2fl8jgio] { background: #0d47a1; }

.otc-btn-mini[b-7w2fl8jgio] {
    background: #1565c0;
    color: #fff;
    border: none;
    padding: 0.2rem 0.55rem;
    font-size: 0.65rem;
    border-radius: 3px;
    cursor: pointer;
    margin: 0 2px;
}

    .otc-btn-mini:hover[b-7w2fl8jgio] { background: #0d47a1; }

.otc-btn-mini-danger[b-7w2fl8jgio] { background: #b91c1c; }
.otc-btn-mini-danger:hover[b-7w2fl8jgio] { background: #991b1b; }

.otc-btn-primary[b-7w2fl8jgio] {
    background: #1565c0;
    color: #fff;
    border: none;
    padding: 0.45rem 1rem;
    border-radius: 3px;
    font-weight: 600;
    cursor: pointer;
    font-size: 0.78rem;
}

    .otc-btn-primary:hover[b-7w2fl8jgio] { background: #0d47a1; }
    .otc-btn-primary:disabled[b-7w2fl8jgio] { background: #94a3b8; cursor: not-allowed; }

.otc-btn-secondary[b-7w2fl8jgio] {
    background: #fff;
    color: #475569;
    border: 1px solid #cbd5e1;
    padding: 0.45rem 1rem;
    border-radius: 3px;
    font-weight: 600;
    cursor: pointer;
    margin-right: 0.4rem;
    font-size: 0.78rem;
}

    .otc-btn-secondary:hover[b-7w2fl8jgio] { background: #f1f5f9; }

.otc-expand-btn[b-7w2fl8jgio] {
    background: transparent;
    border: none;
    color: #1565c0;
    cursor: pointer;
    font-size: 0.65rem;
    padding: 0.1rem 0.3rem;
}

.otc-row-detail > td[b-7w2fl8jgio] { background: #f8fafc; }

.otc-chip[b-7w2fl8jgio] {
    display: inline-block;
    background: #e0f2fe;
    color: #075985;
    border: 1px solid #bae6fd;
    padding: 0.05rem 0.4rem;
    margin: 1px;
    border-radius: 8px;
    font-size: 0.62rem;
}

.otc-row-asig[b-7w2fl8jgio] {
    background: #fff;
}

/* KPIs */
.otc-kpi-grid[b-7w2fl8jgio] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.6rem;
    margin-bottom: 0.75rem;
}

.otc-kpi[b-7w2fl8jgio] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-left: 3px solid #1565c0;
    border-radius: 3px;
    padding: 0.55rem 0.7rem;
}

.otc-kpi-lbl[b-7w2fl8jgio] {
    font-size: 0.65rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.otc-kpi-val[b-7w2fl8jgio] {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1e3a5a;
    line-height: 1.2;
}

.otc-kpi-sub[b-7w2fl8jgio] {
    font-size: 0.65rem;
    color: #94a3b8;
}

.otc-dash-grid[b-7w2fl8jgio] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 0.6rem;
}

.otc-card[b-7w2fl8jgio] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 3px;
    padding: 0.5rem 0.65rem;
}

.otc-card-head[b-7w2fl8jgio] {
    font-size: 0.78rem;
    font-weight: 700;
    color: #1e3a5a;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid #e2e8f0;
    margin-bottom: 0.4rem;
}

/* Empty */
.otc-empty[b-7w2fl8jgio] {
    text-align: center;
    color: #94a3b8;
    padding: 2rem;
    font-size: 0.85rem;
}

.otc-empty-mini[b-7w2fl8jgio] {
    text-align: center;
    color: #94a3b8;
    padding: 0.75rem;
    font-size: 0.75rem;
}

/* Loading */
.otc-loading[b-7w2fl8jgio] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem;
    color: #64748b;
}

.otc-spinner[b-7w2fl8jgio] {
    width: 18px;
    height: 18px;
    border: 2px solid #cbd5e1;
    border-top-color: #1565c0;
    border-radius: 50%;
    animation: otc-spin 0.8s linear infinite;
}

@@keyframes otc-spin {
    to[b-7w2fl8jgio] { transform: rotate(360deg); }
}

/* Dialog */
.otc-dlg-head[b-7w2fl8jgio] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #1e3a5a;
}

.otc-dlg-body[b-7w2fl8jgio] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    font-size: 0.78rem;
}

.otc-dlg-row[b-7w2fl8jgio] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.otc-dlg-grid2[b-7w2fl8jgio] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem;
}

.otc-dlg-lbl[b-7w2fl8jgio] {
    font-size: 0.7rem;
    font-weight: 600;
    color: #475569;
}

.otc-dlg-val[b-7w2fl8jgio] {
    font-size: 0.8rem;
    color: #1e3a5a;
}

.otc-dlg-section[b-7w2fl8jgio] {
    border-top: 1px solid #e2e8f0;
    padding-top: 0.5rem;
    margin-top: 0.3rem;
}

.otc-dlg-section-head[b-7w2fl8jgio] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.35rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #1e3a5a;
}

.otc-dlg-hint[b-7w2fl8jgio] {
    font-size: 0.7rem;
    color: #64748b;
    background: #f1f5f9;
    border-left: 3px solid #94a3b8;
    padding: 0.35rem 0.5rem;
    border-radius: 4px;
    margin-bottom: 0.5rem;
    line-height: 1.35;
}

/* Bar chart CSS */
.otc-barchart[b-7w2fl8jgio] {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    height: 200px;
    padding: 0.4rem 0;
    overflow-x: auto;
}

.otc-bar-col[b-7w2fl8jgio] {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 22px;
    flex: 1;
}

.otc-bar-stack[b-7w2fl8jgio] {
    width: 100%;
    height: 170px;
    display: flex;
    flex-direction: column-reverse;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 2px;
    overflow: hidden;
}

.otc-bar-efec[b-7w2fl8jgio] { background: #16a34a; width: 100%; }
.otc-bar-muerta[b-7w2fl8jgio] { background: #dc2626; width: 100%; }

.otc-bar-lbl[b-7w2fl8jgio] {
    font-size: 0.6rem;
    color: #64748b;
    margin-top: 2px;
    transform: rotate(-30deg);
    transform-origin: center;
    white-space: nowrap;
}

.otc-bar-legend[b-7w2fl8jgio] {
    display: flex;
    gap: 0.85rem;
    justify-content: center;
    margin-top: 1.5rem;
    font-size: 0.7rem;
    color: #475569;
}

    .otc-bar-legend span[b-7w2fl8jgio] { display: inline-flex; align-items: center; gap: 0.25rem; }

    .otc-bar-legend i[b-7w2fl8jgio] {
        display: inline-block;
        width: 10px;
        height: 10px;
        border-radius: 2px;
    }

.lg-ok[b-7w2fl8jgio] { background: #16a34a; }
.lg-bad[b-7w2fl8jgio] { background: #dc2626; }

/* Motivos */
.otc-motivos[b-7w2fl8jgio] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.otc-motivo-head[b-7w2fl8jgio] {
    display: flex;
    justify-content: space-between;
    font-size: 0.7rem;
    color: #475569;
    margin-bottom: 2px;
}

.otc-motivo-nom[b-7w2fl8jgio] { font-weight: 600; color: #1e3a5a; }
.otc-motivo-val[b-7w2fl8jgio] { font-variant-numeric: tabular-nums; }

.otc-motivo-bar[b-7w2fl8jgio] {
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 2px;
    height: 8px;
    overflow: hidden;
}

.otc-motivo-fill[b-7w2fl8jgio] {
    background: linear-gradient(90deg, #f97316, #dc2626);
    height: 100%;
}

/* ── Cuadrícula multimedia de ejecuciones ── */
.otc-media-grid[b-7w2fl8jgio] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.75rem;
    padding: 0.25rem 0;
}

.otc-media-card[b-7w2fl8jgio] {
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.15s, border-color 0.15s;
}

.otc-media-card:hover[b-7w2fl8jgio] {
    border-color: #1565c0;
    box-shadow: 0 2px 8px rgba(21,101,192,0.15);
}

.otc-media-thumb[b-7w2fl8jgio] {
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.otc-media-thumb img[b-7w2fl8jgio] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.otc-media-video[b-7w2fl8jgio] {
    position: relative;
}

.otc-media-play[b-7w2fl8jgio] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: #fff;
    text-shadow: 0 1px 4px rgba(0,0,0,0.6);
    background: rgba(0,0,0,0.2);
    pointer-events: none;
}

.otc-media-icon-bg[b-7w2fl8jgio] {
    background: #f1f5f9;
}

.otc-media-name[b-7w2fl8jgio] {
    font-size: 11px;
    color: #475569;
    padding: 0.3rem 0.4rem 0.1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
}

.otc-media-actions[b-7w2fl8jgio] {
    display: flex;
    gap: 0.25rem;
    padding: 0.25rem 0.4rem 0.4rem;
}

/* Upload area en diálogo */
.otc-dlg-upload-area[b-7w2fl8jgio] {
    padding: 0.5rem 0;
}

.otc-adj-chip[b-7w2fl8jgio] {
    display: inline-block;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 3px;
    padding: 2px 8px;
    font-size: 11px;
    color: #334155;
    margin: 2px 4px 2px 0;
}
/* /Components/Pages/PM/ComConfiguracionProyecto.razor.rz.scp.css */
.cfg-section[b-t01njjb67v] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.cfg-label[b-t01njjb67v] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #334155;
}

.cfg-hint[b-t01njjb67v] {
    font-size: 0.72rem;
    color: #64748b;
}

.cfg-textarea[b-t01njjb67v] {
    resize: vertical;
    min-height: 70px;
    font-family: inherit;
    width: 100%;
    box-sizing: border-box;
}

.cfg-error[b-t01njjb67v] {
    margin-top: 0.6rem;
    font-size: 0.75rem;
    color: #dc2626;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    padding: 0.45rem 0.6rem;
}
/* /Components/Pages/PM/ComDetalleActividades.razor.rz.scp.css */
/* Container */
.budget-container[b-zh93hibxmi] {
    padding: 0.75rem;
}

/* Header compacto - Minimalist */
.budget-header[b-zh93hibxmi] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    border-bottom: 1px solid #e2e8f0;
    padding: 0.5rem 0.25rem;
    margin-bottom: 0.75rem;
    color: #334155;
}

.header-left[b-zh93hibxmi] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.header-left > i[b-zh93hibxmi] {
    font-size: 1rem;
    color: #64748b;
}

.project-name[b-zh93hibxmi] {
    font-weight: 600;
    font-size: 1rem;
    color: #0f172a;
}

.badge-stats[b-zh93hibxmi] {
    background: #f1f5f9;
    color: #64748b;
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
    border: 1px solid #e2e8f0;
}

.btn-new-ficha[b-zh93hibxmi] {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    color: #475569;
    padding: 0.3rem 0.75rem;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
}

.btn-new-ficha:hover[b-zh93hibxmi] {
    background: #f8fafc;
    border-color: #94a3b8;
    color: #1e293b;
}

.btn-new-ficha i[b-zh93hibxmi] {
    margin-right: 0.35rem;
}

/* Card */
.budget-card[b-zh93hibxmi] {
    background: white;
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); /* Subtle shadow */
    overflow: hidden;
    border: 1px solid #e2e8f0;
}

/* Tabla compacta */
.budget-table[b-zh93hibxmi] {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.budget-table thead[b-zh93hibxmi] {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.budget-table thead th[b-zh93hibxmi] {
    padding: 0.6rem 0.75rem;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    text-align: left;
}

.budget-table thead th:nth-child(n+4)[b-zh93hibxmi] {
    text-align: right;
}

.budget-table thead th:last-child[b-zh93hibxmi] {
    text-align: center;
}

/* Filas de grupo - Neutral */
.group-row[b-zh93hibxmi] {
    background: #f8fafc; /* Very light cool gray */
}

.group-row td[b-zh93hibxmi] {
    padding: 0.5rem 0.75rem;
    font-weight: 600;
    font-size: 0.8rem;
    color: #334155;
    border-bottom: 1px solid #e2e8f0;
    border-top: 1px solid #e2e8f0;
}

.group-row i[b-zh93hibxmi] {
    color: #94a3b8; /* Muted icon */
    margin-right: 0.35rem;
    font-size: 0.8rem;
}

.group-num[b-zh93hibxmi] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    background: #e2e8f0;
    color: #475569;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 700;
}

.amt-group[b-zh93hibxmi] {
    font-family: 'Consolas', monospace;
    font-weight: 700;
    color: #334155;
}

/* Filas de items */
.item-row td[b-zh93hibxmi] {
    padding: 0.4rem 0.75rem;
    border-bottom: 1px solid #f1f5f9;
    color: #4b5563;
}

.item-row:last-child td[b-zh93hibxmi] {
    border-bottom: none;
}

.item-row:hover[b-zh93hibxmi] {
    background: #fcfcfc;
}

.item-row .num[b-zh93hibxmi] {
    color: #9ca3af;
    font-family: 'Consolas', monospace;
    font-size: 0.75rem;
}

.item-row .desc[b-zh93hibxmi] {
    font-weight: 400;
    color: #334155;
}

.item-row .unit[b-zh93hibxmi] {
    text-align: center;
    color: #94a3b8;
    font-size: 0.75rem;
}

.item-row .amt[b-zh93hibxmi] {
    text-align: right;
    font-family: 'Consolas', monospace;
    color: #4b5563;
}

.item-row .actions[b-zh93hibxmi] {
    text-align: center;
}

/* Input Styles */
.budget-input[b-zh93hibxmi] {
    border: 1px solid transparent !important;
    background-color: transparent !important;
    transition: all 0.2s ease;
    width: 100%;
    padding: 0.15rem 0.5rem;
    font-size: 0.8rem;
    font-family: 'Consolas', monospace;
}

.budget-input:focus[b-zh93hibxmi] {
    border-color: #cbd5e1 !important;
    background-color: #ffffff !important;
    box-shadow: 0 0 0 2px rgba(203, 213, 225, 0.3) !important;
    outline: none;
}

/* Custom action buttons inside table */
.item-row .btn-outline-primary[b-zh93hibxmi] {
    color: #64748b;
    border-color: transparent;
}
.item-row .btn-outline-primary:hover[b-zh93hibxmi] {
    color: #2563eb;
    background: #eff6ff;
    border-color: #bfdbfe;
}

.item-row .btn-outline-danger[b-zh93hibxmi] {
    color: #64748b;
    border-color: transparent;
}
.item-row .btn-outline-danger:hover[b-zh93hibxmi] {
    color: #dc2626;
    background: #fef2f2;
    border-color: #fecaca;
}


/* Footer total */
.total-row[b-zh93hibxmi] {
    background: #f8fafc;
    border-top: 2px solid #e2e8f0;
}

.total-row td[b-zh93hibxmi] {
    padding: 0.75rem;
    color: #0f172a;
    font-weight: 700;
    font-size: 0.9rem;
    border: none;
}

.total-row td:nth-child(2)[b-zh93hibxmi] {
    font-family: 'Consolas', monospace;
}

/* Loading */
.loading-container[b-zh93hibxmi] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 2rem;
    color: #6b7280;
    font-size: 0.85rem;
}

.loading-spinner[b-zh93hibxmi] {
    width: 20px;
    height: 20px;
    border: 2px solid #e5e7eb;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: spin-b-zh93hibxmi 0.6s linear infinite;
}

@keyframes spin-b-zh93hibxmi {
    to { transform: rotate(360deg); }
}

/* Empty state */
.empty-state[b-zh93hibxmi] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem;
    color: #9ca3af;
    font-size: 0.85rem;
}

.empty-state i[b-zh93hibxmi] {
    font-size: 1.25rem;
}

/* Responsive */
@media (max-width: 768px) {
    .budget-container[b-zh93hibxmi] {
        padding: 0.5rem;
    }
    
    .budget-header[b-zh93hibxmi] {
        padding: 0.4rem 0.75rem;
    }
    
    .project-name[b-zh93hibxmi] {
        font-size: 0.85rem;
    }
    
    .budget-table[b-zh93hibxmi] {
        font-size: 0.75rem;
    }
}
/* /Components/Pages/PM/ComDetalleAvanceActividad.razor.rz.scp.css */
[b-pyw2smas0s] .dav-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 0.25rem;
}

[b-pyw2smas0s] .dav-header-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 700;
    color: #1e3a5a;
    font-size: 0.95rem;
}

[b-pyw2smas0s] .dav-header-icon { font-size: 1.1rem; }

[b-pyw2smas0s] .dav-pill {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

[b-pyw2smas0s] .dav-pill--ok { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
[b-pyw2smas0s] .dav-pill--warn { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; }
[b-pyw2smas0s] .dav-pill--bad { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }
[b-pyw2smas0s] .dav-pill--neutral { background: #f1f5f9; color: #475569; border: 1px solid #cbd5e1; }

.dav-loading[b-pyw2smas0s],
.dav-empty[b-pyw2smas0s] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 3rem 1rem;
    color: #64748b;
    font-size: 0.85rem;
}

.dav-content[b-pyw2smas0s] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0.25rem;
}

.dav-actinfo[b-pyw2smas0s] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.75rem 1rem;
    background: #1a2a3a;
    color: #f1f5f9;
    border-left: 3px solid #1565c0;
    border-radius: 3px;
}

.dav-act-desc[b-pyw2smas0s] { font-weight: 700; font-size: 0.95rem; }
.dav-act-sub[b-pyw2smas0s] { font-size: 0.72rem; color: #94a3b8; margin-top: 0.15rem; }

.dav-actinfo-cant[b-pyw2smas0s] { text-align: right; }

.dav-cant-big[b-pyw2smas0s] {
    font-size: 1.1rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.dav-cant-unit[b-pyw2smas0s] { font-weight: 400; color: #cbd5e1; font-size: 0.85rem; }
.dav-cant-rest[b-pyw2smas0s] { font-size: 0.7rem; color: #94a3b8; margin-top: 0.15rem; }

.dav-kpis[b-pyw2smas0s] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.5rem;
}

.dav-kpi[b-pyw2smas0s] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-left: 3px solid #1565c0;
    padding: 0.55rem 0.7rem;
    border-radius: 3px;
}

.dav-kpi-lbl[b-pyw2smas0s] {
    font-size: 0.65rem;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 0.4px;
    font-weight: 600;
}

.dav-kpi-val[b-pyw2smas0s] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1e3a5a;
    font-variant-numeric: tabular-nums;
    margin-top: 0.1rem;
}

.dav-kpi-val.pos[b-pyw2smas0s] { color: #166534; }
.dav-kpi-val.neg[b-pyw2smas0s] { color: #991b1b; }

.dav-kpi-sub[b-pyw2smas0s] {
    font-size: 0.65rem;
    color: #64748b;
    margin-top: 0.1rem;
}

.dav-card[b-pyw2smas0s] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 3px;
    padding: 0.65rem 0.85rem;
}

.dav-card-head[b-pyw2smas0s] {
    font-size: 0.78rem;
    font-weight: 700;
    color: #1e3a5a;
    margin-bottom: 0.5rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid #e2e8f0;
}

.dav-grid-2[b-pyw2smas0s] {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 1rem;
}

.dav-empty-mini[b-pyw2smas0s] {
    text-align: center;
    color: #94a3b8;
    font-size: 0.78rem;
    padding: 1rem;
}

.dav-doublebar[b-pyw2smas0s] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.dav-doublebar-row[b-pyw2smas0s] {
    display: grid;
    grid-template-columns: 75px 1fr 65px;
    gap: 0.6rem;
    align-items: center;
}

.dav-doublebar-lbl[b-pyw2smas0s] {
    font-size: 0.72rem;
    color: #475569;
    font-weight: 600;
}

.dav-doublebar-bar[b-pyw2smas0s] {
    height: 12px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 2px;
    overflow: hidden;
}

.dav-doublebar-fill[b-pyw2smas0s] {
    height: 100%;
    transition: width 0.3s ease;
}

.dav-doublebar-fill.real[b-pyw2smas0s] { background: linear-gradient(90deg, #16a34a, #15803d); }
.dav-doublebar-fill.esp[b-pyw2smas0s] { background: linear-gradient(90deg, #64748b, #475569); }

.dav-doublebar-val[b-pyw2smas0s] {
    font-size: 0.78rem;
    font-weight: 700;
    text-align: right;
    color: #1e3a5a;
    font-variant-numeric: tabular-nums;
}

.dav-svg-wrap[b-pyw2smas0s] {
    width: 100%;
    overflow-x: auto;
}

.dav-svg[b-pyw2smas0s] {
    width: 100%;
    height: 220px;
    display: block;
}

.dav-legend[b-pyw2smas0s] {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-top: 0.4rem;
    font-size: 0.7rem;
    color: #475569;
}

    .dav-legend span[b-pyw2smas0s] { display: inline-flex; align-items: center; gap: 0.3rem; }

    .dav-legend i[b-pyw2smas0s] {
        display: inline-block;
        width: 14px;
        height: 3px;
        border-radius: 2px;
    }

.lg-real[b-pyw2smas0s] { background: #16a34a; }
.lg-esp[b-pyw2smas0s] { background: #64748b; }

.dav-table[b-pyw2smas0s] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.75rem;
}

    .dav-table thead th[b-pyw2smas0s] {
        background: #f1f5f9;
        color: #475569;
        font-weight: 700;
        text-transform: uppercase;
        font-size: 0.65rem;
        letter-spacing: 0.4px;
        padding: 0.4rem 0.5rem;
        border-bottom: 1px solid #cbd5e1;
        text-align: left;
    }

    .dav-table tbody td[b-pyw2smas0s] {
        padding: 0.35rem 0.5rem;
        border-bottom: 1px solid #f1f5f9;
        color: #1e3a5a;
        font-variant-numeric: tabular-nums;
    }

    .dav-table tbody tr:hover[b-pyw2smas0s] { background: #f8fafc; }

.dav-table--exec[b-pyw2smas0s] { font-size: 0.72rem; }

.dav-chip[b-pyw2smas0s] {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    text-transform: uppercase;
}

.dav-chip--ok[b-pyw2smas0s] { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
.dav-chip--off[b-pyw2smas0s] { background: #f1f5f9; color: #64748b; border: 1px solid #cbd5e1; }

.dav-motivos[b-pyw2smas0s] { display: flex; flex-direction: column; gap: 0.45rem; }

.dav-motivo-head[b-pyw2smas0s] {
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    margin-bottom: 2px;
}

.dav-motivo-nom[b-pyw2smas0s] { font-weight: 600; color: #1e3a5a; }
.dav-motivo-val[b-pyw2smas0s] { color: #475569; font-variant-numeric: tabular-nums; }

.dav-motivo-bar[b-pyw2smas0s] {
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 2px;
    height: 7px;
    overflow: hidden;
}

.dav-motivo-fill[b-pyw2smas0s] {
    background: linear-gradient(90deg, #f97316, #dc2626);
    height: 100%;
}

.dav-muted[b-pyw2smas0s] { color: #94a3b8; }
.dav-obs[b-pyw2smas0s] { max-width: 180px; }

@media (max-width: 1100px) {
    .dav-kpis[b-pyw2smas0s] { grid-template-columns: repeat(3, 1fr); }
    .dav-grid-2[b-pyw2smas0s] { grid-template-columns: 1fr; }
}
/* /Components/Pages/PM/ComEjecucionCronograma.razor.rz.scp.css */
/* ── Container ── */
.cronograma-container[b-sy9pi2fpq8] {
    height: calc(100vh - 280px);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

/* ── Tab Navigation ── */
.cronograma-tab[b-sy9pi2fpq8] {
    padding: 0.75rem 1.5rem;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 500;
    color: #64748b;
    border-bottom: 3px solid transparent;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cronograma-tab:hover[b-sy9pi2fpq8] {
    color: #334155;
    background: #f8fafc;
}

.cronograma-tab.active[b-sy9pi2fpq8] {
    color: #3b82f6;
    border-bottom-color: #3b82f6;
    font-weight: 600;
}

/* ── Panel macro / KPIs sobre el Gantt ── */
.crono-kpis[b-sy9pi2fpq8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.crono-kpi[b-sy9pi2fpq8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 0.85rem 1rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.crono-kpi:hover[b-sy9pi2fpq8] {
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
    transform: translateY(-1px);
}
.crono-kpi.alert[b-sy9pi2fpq8] {
    border-color: #fecaca;
    background: #fff5f5;
}

.crono-kpi-ico[b-sy9pi2fpq8] {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.crono-kpi-body[b-sy9pi2fpq8] { min-width: 0; }

.crono-kpi-val[b-sy9pi2fpq8] {
    font-size: 1.35rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.15;
}
.crono-kpi-unit[b-sy9pi2fpq8] {
    font-size: 0.8rem;
    font-weight: 500;
    color: #64748b;
}
.crono-kpi-lbl[b-sy9pi2fpq8] {
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 500;
    margin-top: 0.1rem;
}
.crono-kpi-sub[b-sy9pi2fpq8] {
    font-size: 0.68rem;
    color: #94a3b8;
    margin-top: 0.35rem;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
}
.crono-kpi-sub.ok[b-sy9pi2fpq8]  { color: #166534; font-weight: 600; }
.crono-kpi-sub.bad[b-sy9pi2fpq8] { color: #b91c1c; font-weight: 600; }

.crono-kpi-sub .dot[b-sy9pi2fpq8] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-left: 0.35rem;
}
.crono-kpi-sub .dot:first-child[b-sy9pi2fpq8] { margin-left: 0; }
.crono-kpi-sub .dot.ok[b-sy9pi2fpq8]   { background: #22c55e; }
.crono-kpi-sub .dot.warn[b-sy9pi2fpq8] { background: #f59e0b; }
.crono-kpi-sub .dot.idle[b-sy9pi2fpq8] { background: #cbd5e1; }

.crono-progress[b-sy9pi2fpq8] {
    margin-top: 0.5rem;
    height: 7px;
    background: #eef2f6;
    border-radius: 999px;
    overflow: hidden;
}
.crono-progress-fill[b-sy9pi2fpq8] {
    height: 100%;
    border-radius: 999px;
    transition: width 0.4s ease;
}

/* icono ficha en gantt */
.gantt-ficha-btn[b-sy9pi2fpq8] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 2px;
    font-size: 13px;
    line-height: 1;
    opacity: 0.7;
    transition: opacity 0.15s;
}
.gantt-ficha-btn:hover[b-sy9pi2fpq8] {
    opacity: 1;
}
/* /Components/Pages/PM/ComFichaDetalleCronograma.razor.rz.scp.css */
/* Backdrop */
.ficha-detalle-backdrop[b-bde8u1h5ft] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.5);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    padding: 1rem;
}

/* Modal */
.ficha-detalle-modal[b-bde8u1h5ft] {
    background: white;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 900px;
    height: 540px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
}

/* Header */
.ficha-detalle-header[b-bde8u1h5ft] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 1rem;
    background: #1e293b;
    color: white;
    border-radius: 8px 8px 0 0;
    flex-shrink: 0;
}

.ficha-detalle-title[b-bde8u1h5ft] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    font-size: 0.9rem;
    margin: 0;
}

.btn-close-ficha[b-bde8u1h5ft] {
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: white;
    width: 26px;
    height: 26px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.btn-close-ficha:hover[b-bde8u1h5ft] {
    background: rgba(255, 255, 255, 0.2);
}

/* Info bar */
.ficha-detalle-info[b-bde8u1h5ft] {
    display: flex;
    gap: 1.25rem;
    padding: 0.5rem 1rem;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.info-item[b-bde8u1h5ft] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.info-label[b-bde8u1h5ft] {
    font-size: 0.7rem;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.info-value[b-bde8u1h5ft] {
    font-size: 0.85rem;
    font-weight: 500;
    color: #334155;
}

.info-value.highlight[b-bde8u1h5ft] {
    color: #0f766e;
    font-weight: 700;
    font-family: Consolas, monospace;
}

/* Tabs */
.ficha-detalle-tabs[b-bde8u1h5ft] {
    display: flex;
    border-bottom: 2px solid #e2e8f0;
    padding: 0 1rem;
    background: #fafafa;
    flex-shrink: 0;
}

.tab-btn[b-bde8u1h5ft] {
    padding: 0.45rem 0.85rem;
    border: none;
    background: none;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    position: relative;
    transition: color 0.15s;
}

.tab-btn:hover[b-bde8u1h5ft] {
    color: #334155;
}

.tab-btn.active[b-bde8u1h5ft] {
    color: #0f766e;
    font-weight: 600;
}

.tab-btn.active[b-bde8u1h5ft]::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: #0f766e;
    border-radius: 2px 2px 0 0;
}

.tab-count[b-bde8u1h5ft] {
    background: #e2e8f0;
    color: #64748b;
    font-size: 0.7rem;
    padding: 0.1rem 0.4rem;
    border-radius: 8px;
    font-weight: 600;
}

.tab-btn.active .tab-count[b-bde8u1h5ft] {
    background: #ccfbf1;
    color: #0f766e;
}

/* Body */
.ficha-detalle-body[b-bde8u1h5ft] {
    flex: 1;
    overflow-y: auto;
    padding: 0.6rem 0.85rem;
    min-height: 0;
}

/* Table */
.detalle-table[b-bde8u1h5ft] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

.detalle-table thead th[b-bde8u1h5ft] {
    background: #f1f5f9;
    padding: 0.3rem 0.45rem;
    font-weight: 600;
    color: #475569;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
    white-space: nowrap;
}

.detalle-table tbody td[b-bde8u1h5ft] {
    padding: 0.3rem 0.45rem;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
}

.detalle-table .center[b-bde8u1h5ft] {
    text-align: center;
}

.detalle-table .right[b-bde8u1h5ft] {
    text-align: right;
}

.detalle-table .amt[b-bde8u1h5ft] {
    font-family: Consolas, monospace;
    font-weight: 600;
    color: #0f766e;
}

.detalle-table .subtotal-row td[b-bde8u1h5ft] {
    font-weight: 700;
    background: #f8fafc;
    border-top: 2px solid #e2e8f0;
    color: #1e293b;
}

.detalle-table .subtotal-row .amt[b-bde8u1h5ft] {
    color: #0f766e;
}

/* Empty state */
.tab-empty[b-bde8u1h5ft] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    color: #94a3b8;
    gap: 0.5rem;
}

.tab-empty i[b-bde8u1h5ft] {
    font-size: 1.5rem;
}

/* Loading spinner */
.loading-spinner[b-bde8u1h5ft] {
    width: 24px;
    height: 24px;
    border: 3px solid #e2e8f0;
    border-top-color: #0f766e;
    border-radius: 50%;
    animation: spin-b-bde8u1h5ft 0.7s linear infinite;
}

@keyframes spin-b-bde8u1h5ft {
    to { transform: rotate(360deg); }
}

/* Summary */
.ficha-detalle-summary[b-bde8u1h5ft] {
    display: flex;
    gap: 1rem;
    padding: 0.5rem 1rem;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.summary-item[b-bde8u1h5ft] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    gap: 0.1rem;
}

.summary-item span:first-child[b-bde8u1h5ft] {
    color: #94a3b8;
    font-size: 0.7rem;
    text-transform: uppercase;
    font-weight: 600;
}

.summary-item span:last-child[b-bde8u1h5ft] {
    color: #334155;
    font-family: Consolas, monospace;
    font-weight: 600;
}

.summary-item.total span:last-child[b-bde8u1h5ft] {
    color: #0f766e;
    font-size: 0.9rem;
    font-weight: 700;
}

/* Footer */
.ficha-detalle-footer[b-bde8u1h5ft] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border-top: 1px solid #e2e8f0;
    flex-shrink: 0;
}

.btn-cerrar[b-bde8u1h5ft] {
    padding: 0.4rem 1.2rem;
    border: 1px solid #cbd5e1;
    background: white;
    color: #475569;
    border-radius: 6px;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
}

.btn-cerrar:hover[b-bde8u1h5ft] {
    background: #f1f5f9;
    border-color: #94a3b8;
}

.btn-solicitar-compra[b-bde8u1h5ft] {
    padding: 0.4rem 1rem;
    background: #1e3a5f;
    color: white;
    border: none;
    border-radius: 6px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    transition: background 0.15s;
}

.btn-solicitar-compra:hover[b-bde8u1h5ft] {
    background: #1e40af;
}

/* Contract column badges */
.contrato-badges[b-bde8u1h5ft] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.contrato-avatar-btn[b-bde8u1h5ft] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    transition: transform 0.15s;
}

.contrato-avatar-btn:hover[b-bde8u1h5ft] { transform: scale(1.12); }

.contrato-avatar[b-bde8u1h5ft] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, #2563eb, #0f766e);
    color: white;
    font-size: 0.6rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.03em;
    box-shadow: 0 1px 4px rgba(37,99,235,0.3);
    user-select: none;
}

.contrato-proveedor-btn[b-bde8u1h5ft] {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
    padding: 0.15rem 0.45rem;
    border-radius: 12px;
    font-size: 0.65rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    transition: all 0.15s;
    white-space: nowrap;
}

.contrato-proveedor-btn:hover[b-bde8u1h5ft] {
    background: #dbeafe;
    border-color: #93c5fd;
}

.contrato-proveedor-name[b-bde8u1h5ft] {
    max-width: 90px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contrato-none[b-bde8u1h5ft] {
    color: #cbd5e1;
    font-size: 0.8rem;
}

/* Contract popover backdrop + card */
.contrato-popover-backdrop[b-bde8u1h5ft] {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.35);
    backdrop-filter: blur(1px);
    padding: 1rem;
}

.contrato-popover[b-bde8u1h5ft] {
    background: white;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    width: 100%;
    max-width: 360px;
    overflow: hidden;
    animation: cp-pop-in-b-bde8u1h5ft 0.18s ease;
}

@keyframes cp-pop-in-b-bde8u1h5ft {
    from { opacity: 0; transform: scale(0.95) translateY(6px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

.cp-header[b-bde8u1h5ft] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    background: linear-gradient(135deg, #1e293b, #334155);
    color: white;
}

.cp-header-prov[b-bde8u1h5ft] {
    background: linear-gradient(135deg, #1e3a5f, #1d4ed8);
}

.cp-avatar-lg[b-bde8u1h5ft] {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255,255,255,0.2);
    color: white;
    font-size: 0.85rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    letter-spacing: 0.03em;
    border: 2px solid rgba(255,255,255,0.3);
}

.cp-prov-icon[b-bde8u1h5ft] {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255,255,255,0.15);
    color: white;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid rgba(255,255,255,0.25);
}

.cp-header-info[b-bde8u1h5ft] {
    flex: 1;
    min-width: 0;
}

.cp-name[b-bde8u1h5ft] {
    font-weight: 700;
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cp-sub[b-bde8u1h5ft] {
    font-size: 0.7rem;
    color: rgba(255,255,255,0.65);
    margin-top: 0.1rem;
}

.cp-close[b-bde8u1h5ft] {
    background: rgba(255,255,255,0.1);
    border: none;
    color: white;
    width: 24px;
    height: 24px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    flex-shrink: 0;
    transition: background 0.15s;
}

.cp-close:hover[b-bde8u1h5ft] { background: rgba(255,255,255,0.25); }

.cp-body[b-bde8u1h5ft] {
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 340px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #e2e8f0 transparent;
}

.cp-body[b-bde8u1h5ft]::-webkit-scrollbar { width: 4px; }
.cp-body[b-bde8u1h5ft]::-webkit-scrollbar-thumb { background: #e2e8f0; border-radius: 4px; }

.cp-row[b-bde8u1h5ft] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.78rem;
}

.cp-label[b-bde8u1h5ft] {
    color: #94a3b8;
    white-space: nowrap;
    min-width: 110px;
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
}

.cp-value[b-bde8u1h5ft] {
    color: #1e293b;
    font-weight: 500;
    word-break: break-word;
}

.cp-pago[b-bde8u1h5ft] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.cp-cadencia[b-bde8u1h5ft] {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
    padding: 0.05rem 0.45rem;
    border-radius: 10px;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.cp-divider[b-bde8u1h5ft] {
    height: 1px;
    background: #f1f5f9;
    margin: 0.25rem 0;
}

.cp-section-title[b-bde8u1h5ft] {
    font-size: 0.65rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 0.15rem;
}

.cp-act-list[b-bde8u1h5ft] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.cp-act-list li[b-bde8u1h5ft] {
    font-size: 0.75rem;
    color: #475569;
    padding: 0.2rem 0.4rem;
    background: #f8fafc;
    border-radius: 4px;
    border-left: 2px solid #0f766e;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
}

.cp-det-amt[b-bde8u1h5ft] {
    font-family: Consolas, monospace;
    font-weight: 600;
    color: #0f766e;
    font-size: 0.72rem;
    white-space: nowrap;
}
/* /Components/Pages/PM/CompContratos.razor.rz.scp.css */
.cc-container[b-nvncyu9cy9] { padding: 0.5rem; }

.cc-card[b-nvncyu9cy9] {
    background: #fff; border-radius: 6px; box-shadow: 0 1px 3px rgba(0,0,0,.05);
    overflow: hidden; border: 1px solid #e5e7eb; margin-bottom: 0.5rem;
}

/* Loading / Empty */
.cc-loading[b-nvncyu9cy9] {
    display: flex; align-items: center; justify-content: center;
    gap: 0.5rem; padding: 1.5rem; color: #6b7280; font-size: 0.82rem;
}
.cc-loading-spinner[b-nvncyu9cy9] {
    width: 16px; height: 16px; border: 2px solid #e5e7eb;
    border-top-color: #0f766e; border-radius: 50%; animation: cc-spin-b-nvncyu9cy9 0.6s linear infinite;
}
@keyframes cc-spin-b-nvncyu9cy9 { to { transform: rotate(360deg); } }

.cc-empty[b-nvncyu9cy9] {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 0.4rem; padding: 2rem 1.5rem; color: #9ca3af; font-size: 0.8rem; text-align: center;
}
.cc-empty-icon[b-nvncyu9cy9] {
    width: 44px; height: 44px; border-radius: 50%; background: #f3f4f6;
    color: #d1d5db; display: flex; align-items: center; justify-content: center; font-size: 1.2rem;
}

/* Tabs */
.cc-tabs-bar[b-nvncyu9cy9] {
    display: flex; align-items: stretch; gap: 0;
    border-bottom: 2px solid #e5e7eb; background: #f8fafc;
}
.cc-tab-btn[b-nvncyu9cy9] {
    padding: 0.3rem 0.75rem; font-size: 0.72rem; font-weight: 600;
    color: #64748b; background: transparent; border: none;
    cursor: pointer; position: relative; white-space: nowrap;
    transition: color 0.12s, background 0.12s;
    border-bottom: 2px solid transparent; margin-bottom: -2px;
}
.cc-tab-btn:hover[b-nvncyu9cy9] { color: #0f766e; background: #f0fdfa; }
.cc-tab-btn.active[b-nvncyu9cy9] { color: #0f766e; border-bottom-color: #0f766e; background: #fff; }
.cc-tab-btn .cc-tab-count[b-nvncyu9cy9] {
    font-size: 0.62rem; font-weight: 700; background: #e5e7eb;
    color: #475569; padding: 0 0.3rem; border-radius: 3px; margin-left: 0.25rem;
}
.cc-tab-btn.active .cc-tab-count[b-nvncyu9cy9] { background: #d1fae5; color: #065f46; }
.cc-tab-panel[b-nvncyu9cy9] { display: none; }
.cc-tab-panel.active[b-nvncyu9cy9] { display: block; }
.cc-tab-body[b-nvncyu9cy9] { padding: 0.5rem; }

/* Filter chips */
.cc-filter-row[b-nvncyu9cy9] {
    display: flex; align-items: center; gap: 0.35rem; margin-bottom: 0.45rem; flex-wrap: wrap;
}
.cc-filter-label[b-nvncyu9cy9] { font-size: 0.68rem; font-weight: 600; color: #64748b; }
.cc-filter-chip[b-nvncyu9cy9] {
    display: inline-flex; align-items: center; gap: 0.2rem;
    padding: 0.15rem 0.45rem; border-radius: 4px; font-size: 0.68rem;
    font-weight: 500; cursor: pointer; border: 1px solid #d1d5db;
    background: #fff; color: #374151; transition: all 0.12s;
}
.cc-filter-chip:hover[b-nvncyu9cy9] { border-color: #9ca3af; }
.cc-filter-chip.active[b-nvncyu9cy9] { background: #0f766e; color: #fff; border-color: #0f766e; }

/* Tabla resumen */
.cc-scroll[b-nvncyu9cy9] {
    max-height: 60vh; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #d1d5db transparent;
    border: 1px solid #e5e7eb; border-radius: 6px;
}
.cc-scroll[b-nvncyu9cy9]::-webkit-scrollbar { width: 4px; }
.cc-scroll[b-nvncyu9cy9]::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }

.cc-table[b-nvncyu9cy9] { width: 100%; border-collapse: collapse; font-size: 0.76rem; }
.cc-table thead[b-nvncyu9cy9] { background: #f8fafc; position: sticky; top: 0; z-index: 1; }
.cc-table thead th[b-nvncyu9cy9] {
    padding: 0.35rem 0.5rem; font-weight: 600; font-size: 0.64rem;
    text-transform: uppercase; letter-spacing: 0.03em; color: #64748b;
    border-bottom: 2px solid #e2e8f0; text-align: left; white-space: nowrap;
}
.cc-table tbody td[b-nvncyu9cy9] {
    padding: 0.3rem 0.5rem; border-bottom: 1px solid #f1f5f9; color: #374151;
    vertical-align: middle;
}
.cc-table tbody tr:hover[b-nvncyu9cy9] { background: #f9fafb; }
.cc-table .ta-center[b-nvncyu9cy9] { text-align: center; }
.cc-table .ta-right[b-nvncyu9cy9] { text-align: right; }

.cc-cell-name[b-nvncyu9cy9] { font-weight: 600; color: #1e293b; font-size: 0.78rem; }
.cc-cell-dates[b-nvncyu9cy9] { white-space: nowrap; font-size: 0.72rem; color: #64748b; }
.cc-cell-strong[b-nvncyu9cy9] { font-weight: 600; }
.cc-muted[b-nvncyu9cy9] { color: #9ca3af; font-size: 0.68rem; }

.cc-amt[b-nvncyu9cy9] {
    font-weight: 700; font-size: 0.76rem; color: #1e293b;
    font-family: 'Segoe UI', Consolas, monospace; white-space: nowrap;
}

/* Pills */
.cc-pill[b-nvncyu9cy9] {
    display: inline-flex; align-items: center; gap: 0.15rem;
    padding: 1px 6px; border-radius: 4px;
    font-size: 0.6rem; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.03em; white-space: nowrap;
}
.cc-pill + .cc-pill[b-nvncyu9cy9] { margin-left: 2px; }
.cc-pill-prov[b-nvncyu9cy9] { background: #eff6ff; color: #1d4ed8; }
.cc-pill-emp[b-nvncyu9cy9] { background: #f5f3ff; color: #6d28d9; }
.cc-pill-firmado[b-nvncyu9cy9] { background: #ecfdf5; color: #065f46; }
.cc-pill-pendiente[b-nvncyu9cy9] { background: #fffbeb; color: #92400e; }
.cc-pill-vencido[b-nvncyu9cy9] { background: #fef2f2; color: #991b1b; }
.cc-pill-cadencia[b-nvncyu9cy9] { background: #eff6ff; color: #2563eb; }

/* Barra de vigencia */
.cc-vigencia[b-nvncyu9cy9] { display: flex; align-items: center; gap: 0.3rem; }
.cc-vigencia-pct[b-nvncyu9cy9] { font-size: 0.62rem; font-weight: 600; color: #64748b; }
.cc-progress-track[b-nvncyu9cy9] {
    flex: 1; height: 5px; background: #e5e7eb; border-radius: 3px; overflow: hidden;
}
.cc-progress-fill[b-nvncyu9cy9] { height: 100%; border-radius: 3px; transition: width 0.3s ease; }
.cc-progress-fill-green[b-nvncyu9cy9] { background: #059669; }
.cc-progress-fill-yellow[b-nvncyu9cy9] { background: #d97706; }
.cc-progress-fill-red[b-nvncyu9cy9] { background: #dc2626; }
.cc-progress-fill-gray[b-nvncyu9cy9] { background: #d1d5db; }

/* Días restantes */
.cc-days-cell[b-nvncyu9cy9] { white-space: nowrap; font-weight: 700; font-size: 0.76rem; }
.cc-days-green[b-nvncyu9cy9] { color: #16a34a; }
.cc-days-yellow[b-nvncyu9cy9] { color: #d97706; }
.cc-days-red[b-nvncyu9cy9] { color: #dc2626; }
.cc-days-gray[b-nvncyu9cy9] { color: #94a3b8; }

/* ── Panel Financiero (consolidado empleados + contratistas) ── */

/* KPIs */
.cc-fin-kpi-row[b-nvncyu9cy9] {
    display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.5rem; margin-bottom: 0.6rem;
}
.cc-fin-kpi[b-nvncyu9cy9] {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 0.55rem 0.7rem; display: flex; flex-direction: column; gap: 0.1rem; min-width: 0;
}
.cc-fin-kpi.neg[b-nvncyu9cy9] { border-color: #fecaca; background: #fffbfb; }
.cc-fin-kpi-label[b-nvncyu9cy9] {
    font-size: 0.62rem; color: #6b7280; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.cc-fin-kpi-value[b-nvncyu9cy9] { font-size: 1.05rem; font-weight: 700; color: #0f172a; line-height: 1.25; }
.cc-fin-kpi-sub[b-nvncyu9cy9] { font-size: 0.6rem; color: #94a3b8; }

/* Barra global de ejecución */
.cc-fin-global-bar[b-nvncyu9cy9] { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.6rem; }
.cc-fin-global-track[b-nvncyu9cy9] {
    flex: 1; height: 8px; background: #f1f5f9; border-radius: 99px; overflow: hidden;
}
.cc-fin-global-fill[b-nvncyu9cy9] { height: 100%; border-radius: 99px; transition: width 0.3s ease; }
.cc-fin-global-pct[b-nvncyu9cy9] { font-size: 0.7rem; font-weight: 700; white-space: nowrap; }

/* Alertas de sobregiro */
.cc-fin-alert[b-nvncyu9cy9] {
    border: 1px solid #fecaca; background: #fef2f2; border-radius: 8px;
    padding: 0.55rem 0.7rem; margin-bottom: 0.6rem;
}
.cc-fin-alert-head[b-nvncyu9cy9] {
    display: flex; align-items: center; gap: 0.4rem;
    font-size: 0.72rem; font-weight: 700; color: #b91c1c; margin-bottom: 0.35rem;
}
.cc-fin-alert-total[b-nvncyu9cy9] { margin-left: auto; font-size: 0.7rem; }
.cc-fin-alert-items[b-nvncyu9cy9] { display: flex; flex-direction: column; gap: 0.2rem; }
.cc-fin-alert-item[b-nvncyu9cy9] {
    display: flex; align-items: center; gap: 0.45rem; font-size: 0.72rem; color: #475569;
}
.cc-fin-alert-name[b-nvncyu9cy9] { font-weight: 600; color: #1e293b; }
.cc-fin-alert-detail[b-nvncyu9cy9] { color: #94a3b8; font-size: 0.66rem; }
.cc-fin-alert-over[b-nvncyu9cy9] { margin-left: auto; font-weight: 700; color: #dc2626; }

.cc-fin-tipo-pill[b-nvncyu9cy9] {
    width: 18px; height: 18px; border-radius: 4px; display: inline-flex;
    align-items: center; justify-content: center; font-size: 0.6rem; flex-shrink: 0;
}
.cc-fin-tipo-pill.prov[b-nvncyu9cy9] { background: #eff6ff; color: #1d4ed8; }
.cc-fin-tipo-pill.emp[b-nvncyu9cy9] { background: #f5f3ff; color: #6d28d9; }
.cc-fin-tipo-pill.act[b-nvncyu9cy9] { background: #ecfdf5; color: #047857; }

/* Tabla consolidada */
.cc-budget-table[b-nvncyu9cy9] { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.cc-budget-table thead[b-nvncyu9cy9] { background: #f8fafc; position: sticky; top: 0; z-index: 1; }
.cc-budget-table th[b-nvncyu9cy9] {
    padding: 0.4rem 0.6rem; text-align: left; font-size: 0.62rem; font-weight: 700;
    text-transform: uppercase; color: #64748b; border-bottom: 2px solid #e2e8f0; letter-spacing: 0.03em;
}
.cc-budget-table th.ta-right[b-nvncyu9cy9], .cc-budget-table td.ta-right[b-nvncyu9cy9] { text-align: right; }
.cc-budget-table td[b-nvncyu9cy9] {
    padding: 0.35rem 0.6rem; border-bottom: 1px solid #f1f5f9; color: #334155; vertical-align: middle;
}
.cc-budget-table tbody tr:hover[b-nvncyu9cy9] { background: #f8fafc; }
.cc-budget-table tr.cc-fin-row-over[b-nvncyu9cy9] { background: #fff5f5; }
.cc-budget-table tr.cc-fin-row-over:hover[b-nvncyu9cy9] { background: #fee2e2; }

.cc-budget-item-name[b-nvncyu9cy9] { font-weight: 600; color: #0f172a; }
.cc-budget-item-sub[b-nvncyu9cy9] { font-size: 0.66rem; color: #94a3b8; }
.cc-cell-inline[b-nvncyu9cy9] { display: flex; align-items: baseline; gap: 0.4rem; flex-wrap: wrap; min-width: 0; }

.cc-fin-aprob-pill[b-nvncyu9cy9] {
    font-size: 0.6rem; font-weight: 600; color: #92400e; background: #fffbeb;
    border: 1px solid #fde68a; border-radius: 4px; padding: 0 0.3rem;
}

/* Fila de grupo (Contratistas / Personal) */
.cc-fin-group-row td[b-nvncyu9cy9] {
    background: #f1f5f9; font-size: 0.64rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.03em; color: #475569; padding: 0.3rem 0.6rem;
}
.cc-fin-group-row td i[b-nvncyu9cy9] { margin-right: 0.3rem; }
.cc-fin-group-total[b-nvncyu9cy9] { float: right; font-weight: 600; color: #64748b; text-transform: none; letter-spacing: 0; }

.cc-fin-total-row td[b-nvncyu9cy9] {
    border-top: 2px solid #e2e8f0; font-weight: 800; color: #0f172a;
    font-size: 0.78rem; padding: 0.45rem 0.6rem; background: #fff;
}

/* Progreso compacto */
.cc-prog-compact[b-nvncyu9cy9] { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.cc-prog-bar-bg[b-nvncyu9cy9] { flex: 1; min-width: 40px; height: 6px; background: #f1f5f9; border-radius: 99px; overflow: hidden; }
.cc-prog-bar-fill[b-nvncyu9cy9] { height: 100%; border-radius: 99px; transition: width 0.3s ease; }
.cc-prog-text[b-nvncyu9cy9] { font-size: 0.7rem; font-weight: 700; white-space: nowrap; flex-shrink: 0; }

/* Toggle de agrupamiento */
.cc-fin-groupby[b-nvncyu9cy9] { display: flex; align-items: center; gap: 0.35rem; margin-bottom: 0.5rem; }
.cc-fin-groupby-label[b-nvncyu9cy9] { font-size: 0.68rem; font-weight: 600; color: #64748b; margin-right: 0.15rem; }
.cc-fin-groupby-btn[b-nvncyu9cy9] {
    display: inline-flex; align-items: center; gap: 0.25rem;
    padding: 0.2rem 0.55rem; border-radius: 5px; font-size: 0.68rem; font-weight: 600;
    cursor: pointer; border: 1px solid #d1d5db; background: #fff; color: #374151; transition: all 0.12s;
}
.cc-fin-groupby-btn:hover[b-nvncyu9cy9] { border-color: #9ca3af; }
.cc-fin-groupby-btn.active[b-nvncyu9cy9] { background: #0f766e; color: #fff; border-color: #0f766e; }

.cc-fin-empty-cell[b-nvncyu9cy9] { text-align: center; color: #94a3b8; font-size: 0.75rem; padding: 0.8rem; }

/* Filas clicables + chevron */
.cc-fin-clickable[b-nvncyu9cy9] { cursor: pointer; }
.cc-fin-row-chevron[b-nvncyu9cy9] { color: #cbd5e1; font-size: 0.7rem; opacity: 0; transition: opacity 0.12s; margin-left: auto; }
.cc-fin-clickable:hover .cc-fin-row-chevron[b-nvncyu9cy9] { opacity: 1; }

/* ── Drawer de detalle financiero ── */
.cc-fin-drawer-overlay[b-nvncyu9cy9] {
    position: fixed; inset: 0; background: rgba(15,23,42,0.35);
    opacity: 0; visibility: hidden; transition: opacity 0.2s; z-index: 1200;
}
.cc-fin-drawer-overlay.visible[b-nvncyu9cy9] { opacity: 1; visibility: visible; }

.cc-fin-drawer[b-nvncyu9cy9] {
    position: fixed; top: 0; right: 0; height: 100%; width: 440px; max-width: 92vw;
    background: #fff; box-shadow: -4px 0 24px rgba(0,0,0,0.12);
    transform: translateX(100%); transition: transform 0.22s ease; z-index: 1201;
    display: flex; flex-direction: column;
}
.cc-fin-drawer.visible[b-nvncyu9cy9] { transform: translateX(0); }

.cc-fin-drawer-header[b-nvncyu9cy9] {
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: 0.85rem 1rem; border-bottom: 1px solid #e5e7eb; flex-shrink: 0;
}
.cc-fin-drawer-title[b-nvncyu9cy9] { display: flex; align-items: center; gap: 0.45rem; font-size: 0.95rem; font-weight: 700; color: #0f172a; }
.cc-fin-drawer-sub[b-nvncyu9cy9] { font-size: 0.68rem; color: #94a3b8; margin-top: 0.15rem; margin-left: 1.6rem; }
.cc-fin-drawer-close[b-nvncyu9cy9] {
    background: transparent; border: none; cursor: pointer; color: #94a3b8;
    font-size: 0.9rem; padding: 0.2rem; line-height: 1;
}
.cc-fin-drawer-close:hover[b-nvncyu9cy9] { color: #0f172a; }

.cc-fin-drawer-stats[b-nvncyu9cy9] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 0.5rem;
    padding: 0.75rem 1rem; background: #f8fafc; border-bottom: 1px solid #e5e7eb; flex-shrink: 0;
}
.cc-fin-drawer-stat[b-nvncyu9cy9] { display: flex; flex-direction: column; gap: 0.1rem; }
.cc-fin-drawer-stat-label[b-nvncyu9cy9] { font-size: 0.6rem; color: #94a3b8; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.cc-fin-drawer-stat-value[b-nvncyu9cy9] { font-size: 0.92rem; font-weight: 700; color: #0f172a; }

.cc-fin-drawer-body[b-nvncyu9cy9] { overflow-y: auto; flex: 1; padding: 0.75rem 1rem 1.5rem; }
.cc-fin-drawer-section-title[b-nvncyu9cy9] {
    font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
    color: #64748b; margin: 0.85rem 0 0.45rem; display: flex; align-items: center; gap: 0.35rem;
}
.cc-fin-drawer-section-title:first-child[b-nvncyu9cy9] { margin-top: 0; }
.cc-fin-drawer-empty[b-nvncyu9cy9] { font-size: 0.75rem; color: #94a3b8; padding: 0.4rem 0; }
.cc-fin-drawer-list[b-nvncyu9cy9] { display: flex; flex-direction: column; gap: 0.4rem; }

/* Tarjeta de contrato */
.cc-fin-contrato-card[b-nvncyu9cy9] {
    border: 1px solid #e5e7eb; border-radius: 8px; padding: 0.55rem 0.65rem; background: #fff;
}
.cc-fin-contrato-top[b-nvncyu9cy9] { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.25rem; }
.cc-fin-contrato-name[b-nvncyu9cy9] { font-weight: 600; color: #0f172a; font-size: 0.8rem; }
.cc-fin-contrato-meta[b-nvncyu9cy9] { display: flex; flex-wrap: wrap; gap: 0.6rem; font-size: 0.66rem; color: #94a3b8; margin-bottom: 0.3rem; }
.cc-fin-contrato-nums[b-nvncyu9cy9] { display: flex; gap: 1rem; font-size: 0.72rem; color: #475569; }
.cc-fin-badge[b-nvncyu9cy9] { font-size: 0.58rem; font-weight: 700; padding: 1px 6px; border-radius: 4px; text-transform: uppercase; }
.cc-fin-badge.ok[b-nvncyu9cy9] { background: #ecfdf5; color: #065f46; }

/* Ítem de pago */
.cc-fin-pago-item[b-nvncyu9cy9] {
    border: 1px solid #e5e7eb; border-radius: 8px; padding: 0.5rem 0.65rem; background: #fff;
    border-left: 3px solid #10b981;
}
.cc-fin-pago-item.pendiente[b-nvncyu9cy9] { border-left-color: #f59e0b; background: #fffdf7; }
.cc-fin-pago-line[b-nvncyu9cy9] { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.cc-fin-pago-line.sub[b-nvncyu9cy9] { margin-top: 0.2rem; font-size: 0.7rem; color: #64748b; }
.cc-fin-pago-line.meta[b-nvncyu9cy9] { margin-top: 0.25rem; font-size: 0.64rem; color: #94a3b8; gap: 0.8rem; justify-content: flex-start; }
.cc-fin-pago-fecha[b-nvncyu9cy9] { font-size: 0.72rem; font-weight: 600; color: #334155; }
.cc-fin-pago-monto[b-nvncyu9cy9] { font-size: 0.85rem; font-weight: 700; color: #0f172a; }
.cc-fin-estado[b-nvncyu9cy9] { font-size: 0.58rem; font-weight: 700; padding: 1px 6px; border-radius: 4px; text-transform: uppercase; }
.cc-fin-estado.pagado[b-nvncyu9cy9], .cc-fin-estado.pagada[b-nvncyu9cy9] { background: #ecfdf5; color: #065f46; }
.cc-fin-estado.pendiente[b-nvncyu9cy9] { background: #fffbeb; color: #92400e; }
.cc-fin-estado.aprobada[b-nvncyu9cy9] { background: #eff6ff; color: #1d4ed8; }
.cc-fin-estado.rechazada[b-nvncyu9cy9], .cc-fin-estado.anulado[b-nvncyu9cy9] { background: #fef2f2; color: #991b1b; }
/* /Components/Pages/PM/ComSaludFinanciera.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════
   Salud Financiera del Proyecto — estilos locales (prefijo sf-)
   Diseñado para coexistir con corp-* del sistema corporativo.
   ════════════════════════════════════════════════════════════ */

.sf-shell[b-56s0t91t2v] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 0.25rem;
}

.sf-loading[b-56s0t91t2v] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 2rem;
    color: #64748b;
    font-size: 0.85rem;
}

.sf-spinner[b-56s0t91t2v] {
    width: 18px;
    height: 18px;
    border: 2px solid #e2e8f0;
    border-top-color: #1565c0;
    border-radius: 50%;
    animation: sf-spin-b-56s0t91t2v 0.8s linear infinite;
}

@keyframes sf-spin-b-56s0t91t2v { to { transform: rotate(360deg); } }

/* ─────────── KPIs ─────────── */
.sf-kpis[b-56s0t91t2v] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.6rem;
}

@media (max-width: 1200px) { .sf-kpis[b-56s0t91t2v] { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px)  { .sf-kpis[b-56s0t91t2v] { grid-template-columns: repeat(2, 1fr); } }

.sf-kpi[b-56s0t91t2v] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 0.7rem 0.85rem;
    position: relative;
    overflow: hidden;
}

.sf-kpi[b-56s0t91t2v]::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
    background: #94a3b8;
}

.sf-kpi-budget[b-56s0t91t2v]::before    { background: #1e3a5a; }
.sf-kpi-committed[b-56s0t91t2v]::before  { background: #7c3aed; }
.sf-kpi-spent[b-56s0t91t2v]::before      { background: #1565c0; }
.sf-kpi-income[b-56s0t91t2v]::before     { background: #16a34a; }
.sf-kpi-ok[b-56s0t91t2v]::before         { background: #16a34a; }
.sf-kpi-warn[b-56s0t91t2v]::before       { background: #ca8a04; }
.sf-kpi-bad[b-56s0t91t2v]::before        { background: #dc2626; }
.sf-kpi-forecast[b-56s0t91t2v]::before   { background: #7c3aed; }
.sf-kpi-neutral[b-56s0t91t2v]::before    { background: #64748b; }

.sf-kpi-lbl[b-56s0t91t2v]   { font-size: 0.68rem; color: #64748b; text-transform: uppercase; letter-spacing: 0.4px; font-weight: 600; }
.sf-kpi-val[b-56s0t91t2v]   { font-size: 1.15rem; font-weight: 700; color: #0f172a; margin-top: 0.15rem; }
.sf-kpi-sub[b-56s0t91t2v]   { font-size: 0.68rem; color: #94a3b8; margin-top: 0.1rem; }

.sf-kpi-ok  .sf-kpi-val[b-56s0t91t2v] { color: #15803d; }
.sf-kpi-bad .sf-kpi-val[b-56s0t91t2v] { color: #b91c1c; }
.sf-kpi-warn .sf-kpi-val[b-56s0t91t2v] { color: #a16207; }

/* ─────────── Barra de progreso ─────────── */
.sf-progress-wrap[b-56s0t91t2v] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 0.65rem 0.85rem;
}

.sf-progress-head[b-56s0t91t2v] {
    display: flex;
    justify-content: space-between;
    font-size: 0.78rem;
    color: #475569;
    margin-bottom: 0.45rem;
}

.sf-progress-vals[b-56s0t91t2v] { font-family: Consolas, monospace; font-size: 0.75rem; }

.sf-progress-bar[b-56s0t91t2v] {
    position: relative;
    height: 14px;
    background: #f1f5f9;
    border-radius: 7px;
    overflow: hidden;
}

.sf-progress-fill[b-56s0t91t2v] {
    height: 100%;
    transition: width 0.4s ease;
}
.sf-progress-fill.ok[b-56s0t91t2v]        { background: linear-gradient(90deg, #16a34a, #22c55e); }
.sf-progress-fill.warn[b-56s0t91t2v]      { background: linear-gradient(90deg, #ca8a04, #eab308); }
.sf-progress-fill.danger[b-56s0t91t2v]    { background: linear-gradient(90deg, #dc2626, #ef4444); }
.sf-progress-fill.committed[b-56s0t91t2v] { background: repeating-linear-gradient(45deg, #c4b5fd, #c4b5fd 4px, #ddd6fe 4px, #ddd6fe 8px); }

/* barra apilada: ejecutado + comprometido-sin-pagar sobre el mismo riel */
.sf-progress-stack[b-56s0t91t2v] { display: flex; }
.sf-progress-stack .sf-progress-fill[b-56s0t91t2v] { height: 100%; }

.sf-progress-key[b-56s0t91t2v] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 0.45rem;
    font-size: 0.68rem;
    color: #64748b;
}
.sf-progress-key span[b-56s0t91t2v] { display: inline-flex; align-items: center; gap: 0.3rem; }
.sf-key-box[b-56s0t91t2v] { width: 10px; height: 10px; border-radius: 2px; display: inline-block; }
.sf-key-box.ok[b-56s0t91t2v]        { background: #16a34a; }
.sf-key-box.committed[b-56s0t91t2v] { background: repeating-linear-gradient(45deg, #c4b5fd, #c4b5fd 3px, #ddd6fe 3px, #ddd6fe 6px); }
.sf-key-box.rest[b-56s0t91t2v]      { background: #f1f5f9; border: 1px solid #e2e8f0; }

.sf-progress-over[b-56s0t91t2v] {
    position: absolute;
    top: 50%; right: 8px; transform: translateY(-50%);
    font-size: 0.7rem; font-weight: 700; color: #fff;
    text-shadow: 0 1px 2px rgba(0,0,0,0.35);
}

/* ─────────── Filtros ─────────── */
.sf-filters[b-56s0t91t2v] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 0.55rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.sf-filter-group[b-56s0t91t2v] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.sf-filter-lbl[b-56s0t91t2v] {
    font-size: 0.7rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    font-weight: 600;
    margin-right: 0.35rem;
}

.sf-chip[b-56s0t91t2v] {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #475569;
    border-radius: 14px;
    padding: 0.2rem 0.7rem;
    font-size: 0.72rem;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    transition: all 0.15s;
}
.sf-chip:hover[b-56s0t91t2v]  { background: #f1f5f9; }
.sf-chip.active[b-56s0t91t2v] { background: #1e3a5a; color: #fff; border-color: #1e3a5a; }
.sf-chip-dot[b-56s0t91t2v]    { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }

/* ─────────── Cards / rows ─────────── */
.sf-row[b-56s0t91t2v]        { display: grid; gap: 0.85rem; }
.sf-row-2[b-56s0t91t2v]      { grid-template-columns: 1fr 1fr; }
@media (max-width: 1100px) { .sf-row-2[b-56s0t91t2v] { grid-template-columns: 1fr; } }

.sf-card[b-56s0t91t2v] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
}

.sf-card-head[b-56s0t91t2v] {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    padding: 0.5rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #1e293b;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sf-mini-count[b-56s0t91t2v] {
    font-size: 0.7rem;
    color: #64748b;
    font-weight: 500;
}

.sf-card-body[b-56s0t91t2v] { padding: 0.85rem; }
.sf-empty-mini[b-56s0t91t2v] { color: #94a3b8; font-size: 0.78rem; text-align: center; padding: 1.2rem; }

/* ─────────── Donut ─────────── */
.sf-donut-body[b-56s0t91t2v] { display: grid; grid-template-columns: 220px 1fr; gap: 1rem; align-items: center; }
@media (max-width: 700px) { .sf-donut-body[b-56s0t91t2v] { grid-template-columns: 1fr; } }

.sf-donut[b-56s0t91t2v] { width: 100%; max-width: 220px; height: auto; }
.sf-donut-seg[b-56s0t91t2v] { transition: stroke-width 0.2s; }
.sf-donut-seg:hover[b-56s0t91t2v] { stroke-width: 7; }
.sf-donut-center-val[b-56s0t91t2v] { font-size: 5px; font-weight: 700; fill: #0f172a; }
.sf-donut-center-lbl[b-56s0t91t2v] { font-size: 2.6px; fill: #64748b; }

.sf-donut-legend[b-56s0t91t2v] { display: flex; flex-direction: column; gap: 0.4rem; }
.sf-legend-row[b-56s0t91t2v] {
    display: grid;
    grid-template-columns: 14px 1fr auto auto;
    gap: 0.5rem;
    align-items: center;
    font-size: 0.78rem;
    padding: 0.25rem 0;
    border-bottom: 1px dashed #f1f5f9;
}
.sf-legend-dot[b-56s0t91t2v]  { width: 12px; height: 12px; border-radius: 3px; }
.sf-legend-lbl[b-56s0t91t2v]  { color: #334155; }
.sf-legend-pct[b-56s0t91t2v]  { color: #64748b; font-family: Consolas, monospace; min-width: 48px; text-align: right; }
.sf-legend-val[b-56s0t91t2v]  { color: #0f172a; font-weight: 600; font-family: Consolas, monospace; min-width: 110px; text-align: right; }

/* ─────────── Chart SVG ─────────── */
.sf-chart[b-56s0t91t2v]       { width: 100%; height: auto; max-height: 240px; }
.sf-grid[b-56s0t91t2v]        { stroke: #f1f5f9; stroke-width: 0.5; }
.sf-axis[b-56s0t91t2v]        { font-size: 8px; fill: #94a3b8; }
.sf-area[b-56s0t91t2v]        { fill: rgba(21, 101, 192, 0.12); stroke: none; }
.sf-line-acum[b-56s0t91t2v]   { fill: none; stroke: #1565c0; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.sf-line-budget[b-56s0t91t2v] { stroke: #dc2626; stroke-width: 1; stroke-dasharray: 4 3; }
.sf-budget-lbl[b-56s0t91t2v]  { font-size: 8px; fill: #dc2626; font-weight: 600; }
.sf-pt[b-56s0t91t2v]          { fill: #1565c0; }

/* ─────────── Stacked bars ─────────── */
.sf-stacked[b-56s0t91t2v] {
    display: flex;
    align-items: flex-end;
    gap: 0.4rem;
    height: 220px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.sf-stacked-col[b-56s0t91t2v] {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1 0 48px;
    min-width: 48px;
    height: 100%;
    gap: 4px;
}

.sf-stacked-bar[b-56s0t91t2v] {
    width: 100%;
    flex: 1;
    background: #f8fafc;
    border-radius: 4px;
    display: flex;
    flex-direction: column-reverse;
    overflow: hidden;
    border: 1px solid #f1f5f9;
}

.sf-stacked-seg[b-56s0t91t2v] { width: 100%; transition: opacity 0.15s; }
.sf-stacked-seg:hover[b-56s0t91t2v] { opacity: 0.8; }
.sf-stacked-lbl[b-56s0t91t2v] { font-size: 0.65rem; color: #64748b; }
.sf-stacked-val[b-56s0t91t2v] { font-size: 0.65rem; font-weight: 600; color: #0f172a; font-family: Consolas, monospace; }

/* ─────────── Top beneficiarios ─────────── */
.sf-toplist[b-56s0t91t2v] { display: flex; flex-direction: column; gap: 0.45rem; }
.sf-top-row[b-56s0t91t2v] {
    display: grid;
    grid-template-columns: 160px 1fr 110px;
    grid-template-rows: auto auto;
    gap: 0.35rem 0.6rem;
    align-items: center;
}
.sf-top-name[b-56s0t91t2v] {
    grid-row: 1; grid-column: 1;
    font-size: 0.78rem; font-weight: 600; color: #0f172a;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sf-top-bar-wrap[b-56s0t91t2v] {
    grid-row: 1; grid-column: 2;
    background: #f1f5f9; border-radius: 4px; height: 10px; overflow: hidden;
}
.sf-top-bar[b-56s0t91t2v] { height: 100%; border-radius: 4px; transition: width 0.3s; }
.sf-top-val[b-56s0t91t2v] {
    grid-row: 1; grid-column: 3;
    font-size: 0.78rem; font-weight: 600; text-align: right;
    color: #0f172a; font-family: Consolas, monospace;
}
.sf-top-meta[b-56s0t91t2v] {
    grid-row: 2; grid-column: 1 / 4;
    font-size: 0.68rem; color: #94a3b8;
}

/* ─────────── Heatmap ─────────── */
/* Las columnas (semanas) se reparten TODO el ancho de la card; las celdas se mantienen
   cuadradas con aspect-ratio, así el mapa escala con el espacio disponible en vez de
   quedarse en un bloque fijo de ~190px. */
.sf-heatmap[b-56s0t91t2v] { display: flex; gap: 3px; width: 100%; }
.sf-heat-col[b-56s0t91t2v] { display: flex; flex-direction: column; gap: 3px; flex: 1 1 0; min-width: 0; }
.sf-heat-cell[b-56s0t91t2v] {
    width: 100%; aspect-ratio: 1 / 1; border-radius: 2px;
    transition: transform 0.1s;
    cursor: default;
}
.sf-heat-cell:hover[b-56s0t91t2v] { transform: scale(1.12); }
.sf-heat-cell.empty[b-56s0t91t2v] { background: transparent; }

.sf-heat-legend[b-56s0t91t2v] {
    display: flex; align-items: center; gap: 0.5rem;
    margin-top: 0.6rem;
    font-size: 0.7rem; color: #94a3b8;
}
.sf-heat-scale[b-56s0t91t2v] { display: flex; gap: 2px; }
.sf-heat-scale > div[b-56s0t91t2v] { width: 12px; height: 12px; border-radius: 2px; }

/* ─────────── Alertas ─────────── */
.sf-alerts[b-56s0t91t2v] { display: flex; flex-direction: column; gap: 0.45rem; }
.sf-alert[b-56s0t91t2v] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.55rem 0.7rem;
    border-radius: 5px;
    border-left: 3px solid #94a3b8;
    background: #f8fafc;
    font-size: 0.78rem;
}
.sf-alert-danger[b-56s0t91t2v]   { border-left-color: #dc2626; background: #fef2f2; }
.sf-alert-warning[b-56s0t91t2v]  { border-left-color: #ca8a04; background: #fefce8; }
.sf-alert-info[b-56s0t91t2v]     { border-left-color: #1565c0; background: #eff6ff; }
.sf-alert-ic[b-56s0t91t2v]       { font-size: 1.1rem; line-height: 1; }
.sf-alert-title[b-56s0t91t2v]    { font-weight: 700; color: #0f172a; }
.sf-alert-msg[b-56s0t91t2v]      { color: #475569; margin-top: 0.15rem; }

/* ─────────── Tabla ─────────── */
.sf-tbl-wrap[b-56s0t91t2v]   { overflow-x: auto; padding: 0; }
.sf-tbl[b-56s0t91t2v]        { font-size: 0.75rem; margin: 0; }
.sf-tbl td.r[b-56s0t91t2v]   { text-align: right; }
.sf-mono[b-56s0t91t2v]       { font-family: Consolas, monospace; font-size: 0.72rem; }
.sf-trunc[b-56s0t91t2v]      { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.sf-cat-pill[b-56s0t91t2v] {
    display: inline-block;
    color: #fff;
    padding: 0.1rem 0.5rem;
    border-radius: 10px;
    font-size: 0.66rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.sf-more[b-56s0t91t2v] {
    padding: 0.6rem;
    text-align: center;
    border-top: 1px solid #f1f5f9;
}

/* ─────────── Estado de presupuesto por categoría ─────────── */
.sf-statement th.r[b-56s0t91t2v], .sf-statement td.r[b-56s0t91t2v] { text-align: right; }
.sf-statement tfoot td[b-56s0t91t2v] {
    font-weight: 700;
    border-top: 2px solid #e2e8f0;
    background: #f8fafc;
    color: #0f172a;
}
.sf-row-over td[b-56s0t91t2v] { background: #fef2f2; }
.sf-cat-dot[b-56s0t91t2v] { width: 9px; height: 9px; border-radius: 2px; display: inline-block; margin-right: 0.4rem; vertical-align: middle; }
.sf-amt-ok[b-56s0t91t2v]   { color: #15803d; }
.sf-amt-bad[b-56s0t91t2v]  { color: #b91c1c; font-weight: 600; }
.sf-amt-warn[b-56s0t91t2v] { color: #a16207; }

.sf-rowbar[b-56s0t91t2v] {
    display: inline-block;
    width: 78px;
    height: 8px;
    background: #f1f5f9;
    border-radius: 4px;
    overflow: hidden;
    vertical-align: middle;
}
.sf-rowbar-fill[b-56s0t91t2v] { height: 100%; border-radius: 4px; }
.sf-rowbar-fill.ok[b-56s0t91t2v]     { background: #16a34a; }
.sf-rowbar-fill.warn[b-56s0t91t2v]   { background: #ca8a04; }
.sf-rowbar-fill.danger[b-56s0t91t2v] { background: #dc2626; }
.sf-rowbar-pct[b-56s0t91t2v] { font-size: 0.68rem; color: #64748b; margin-left: 0.4rem; font-family: Consolas, monospace; }

/* ─────────── Flujo de caja ─────────── */
.sf-cash-summary[b-56s0t91t2v] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.7rem;
}
.sf-cash-pill[b-56s0t91t2v] {
    flex: 1 1 130px;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.45rem 0.65rem;
    border-radius: 5px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.sf-cash-pill span[b-56s0t91t2v] { font-size: 0.66rem; color: #64748b; text-transform: uppercase; letter-spacing: 0.3px; font-weight: 600; }
.sf-cash-pill strong[b-56s0t91t2v] { font-size: 0.95rem; color: #0f172a; font-family: Consolas, monospace; }
.sf-cash-pill.in[b-56s0t91t2v]     { border-left: 3px solid #16a34a; }
.sf-cash-pill.in strong[b-56s0t91t2v]     { color: #15803d; }
.sf-cash-pill.out[b-56s0t91t2v]    { border-left: 3px solid #dc2626; }
.sf-cash-pill.out strong[b-56s0t91t2v]    { color: #b91c1c; }
.sf-cash-pill.net-ok[b-56s0t91t2v]  { border-left: 3px solid #16a34a; background: #f0fdf4; }
.sf-cash-pill.net-bad[b-56s0t91t2v] { border-left: 3px solid #dc2626; background: #fef2f2; }
.sf-cash-pill.net-bad strong[b-56s0t91t2v] { color: #b91c1c; }

/* ─────────── Cuentas por pagar / aging ─────────── */
.sf-badge-overdue[b-56s0t91t2v] { color: #b91c1c; font-weight: 600; }

.sf-aging[b-56s0t91t2v] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.5rem;
    margin-bottom: 0.85rem;
}
@media (max-width: 600px) { .sf-aging[b-56s0t91t2v] { grid-template-columns: repeat(2, 1fr); } }
.sf-aging-cell[b-56s0t91t2v] {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 5px;
    padding: 0.5rem 0.65rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.sf-aging-cell.warn[b-56s0t91t2v] { border-left: 3px solid #ca8a04; }
.sf-aging-cell.bad[b-56s0t91t2v]  { border-left: 3px solid #dc2626; }
.sf-aging-lbl[b-56s0t91t2v] { font-size: 0.66rem; color: #64748b; text-transform: uppercase; letter-spacing: 0.3px; font-weight: 600; }
.sf-aging-val[b-56s0t91t2v] { font-size: 0.92rem; font-weight: 700; color: #0f172a; font-family: Consolas, monospace; }

.sf-cxp-pill[b-56s0t91t2v] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 10px;
    font-size: 0.66rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.sf-cxp-pill.ok[b-56s0t91t2v]   { background: #dcfce7; color: #15803d; }
.sf-cxp-pill.warn[b-56s0t91t2v] { background: #fef9c3; color: #a16207; }
.sf-cxp-pill.bad[b-56s0t91t2v]  { background: #fee2e2; color: #b91c1c; }

/* ─────────── Filas clicables → drawer ─────────── */
.sf-clickable[b-56s0t91t2v] { cursor: pointer; transition: background 0.12s; }
.sf-clickable:hover[b-56s0t91t2v] { background: #f1f5f9; }

/* ─────────── Drawer de detalle ─────────── */
.sf-drawer-overlay[b-56s0t91t2v] {
    position: fixed; inset: 0; background: rgba(15,23,42,0.35);
    opacity: 0; visibility: hidden; transition: opacity 0.2s; z-index: 1200;
}
.sf-drawer-overlay.visible[b-56s0t91t2v] { opacity: 1; visibility: visible; }

.sf-drawer[b-56s0t91t2v] {
    position: fixed; top: 0; right: 0; height: 100%; width: 460px; max-width: 94vw;
    background: #fff; box-shadow: -4px 0 24px rgba(0,0,0,0.12);
    transform: translateX(100%); transition: transform 0.22s ease; z-index: 1201;
    display: flex; flex-direction: column;
}
.sf-drawer.visible[b-56s0t91t2v] { transform: translateX(0); }

.sf-drawer-header[b-56s0t91t2v] {
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: 0.85rem 1rem; border-bottom: 1px solid #e5e7eb; flex-shrink: 0;
}
.sf-drawer-title[b-56s0t91t2v] { display: flex; align-items: center; gap: 0.45rem; font-size: 0.95rem; font-weight: 700; color: #0f172a; }
.sf-drawer-sub[b-56s0t91t2v] { font-size: 0.7rem; color: #94a3b8; margin-top: 0.2rem; margin-left: 1.6rem; }
.sf-drawer-close[b-56s0t91t2v] {
    background: transparent; border: none; cursor: pointer; color: #94a3b8;
    font-size: 0.95rem; padding: 0.2rem; line-height: 1;
}
.sf-drawer-close:hover[b-56s0t91t2v] { color: #0f172a; }

.sf-drawer-stats[b-56s0t91t2v] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 0.5rem;
    padding: 0.75rem 1rem; background: #f8fafc; border-bottom: 1px solid #e5e7eb; flex-shrink: 0;
}
.sf-drawer-stat[b-56s0t91t2v] { display: flex; flex-direction: column; gap: 0.1rem; }
.sf-drawer-stat-label[b-56s0t91t2v] { font-size: 0.62rem; color: #94a3b8; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.sf-drawer-stat-value[b-56s0t91t2v] { font-size: 0.9rem; font-weight: 700; color: #0f172a; }

.sf-drawer-body[b-56s0t91t2v] { overflow-y: auto; flex: 1; padding: 0.75rem 1rem 1.5rem; }
.sf-drawer-body .sf-tbl[b-56s0t91t2v] { font-size: 0.72rem; }
.sf-drawer-section-title[b-56s0t91t2v] {
    font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
    color: #64748b; margin: 0.95rem 0 0.5rem;
}
.sf-drawer-section-title:first-child[b-56s0t91t2v] { margin-top: 0; }
.sf-drawer-empty[b-56s0t91t2v] { font-size: 0.76rem; color: #94a3b8; padding: 0.4rem 0; font-style: italic; }
.sf-drawer-desc[b-56s0t91t2v] { font-size: 0.8rem; color: #334155; line-height: 1.45; }

.sf-drawer-fields[b-56s0t91t2v] { display: flex; flex-direction: column; gap: 0.35rem; }
.sf-drawer-field[b-56s0t91t2v] {
    display: flex; justify-content: space-between; gap: 0.75rem;
    padding: 0.3rem 0; border-bottom: 1px dashed #f1f5f9; font-size: 0.76rem;
}
.sf-drawer-field-lbl[b-56s0t91t2v] { color: #64748b; }
.sf-drawer-field-val[b-56s0t91t2v] { color: #0f172a; font-weight: 600; text-align: right; }

.sf-drawer-loading[b-56s0t91t2v] {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 1.5rem 0; color: #64748b; font-size: 0.8rem;
}

.sf-doc-row[b-56s0t91t2v] {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.45rem 0.55rem; border: 1px solid #e5e7eb; border-radius: 6px;
    margin-bottom: 0.4rem; background: #fff;
}
.sf-doc-nombre[b-56s0t91t2v] { flex: 1; font-size: 0.76rem; color: #334155; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sf-doc-fecha[b-56s0t91t2v] { font-size: 0.68rem; color: #94a3b8; }

/* ─────────── Tab switch (egresos / ingresos) ─────────── */
.sf-tab-switch[b-56s0t91t2v] { display: inline-flex; gap: 0.25rem; }
.sf-tab[b-56s0t91t2v] {
    background: transparent;
    border: 1px solid #e2e8f0;
    color: #64748b;
    border-radius: 5px;
    padding: 0.2rem 0.7rem;
    font-size: 0.74rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
}
.sf-tab:hover[b-56s0t91t2v]  { background: #f1f5f9; }
.sf-tab.active[b-56s0t91t2v] { background: #1e3a5a; color: #fff; border-color: #1e3a5a; }
/* /Components/Pages/PM/ComSinProyectoSeguimiento.razor.rz.scp.css */
/* Estado sin obra en ejecución (PM). Sobre los tokens de wwwroot/css/corporate.css:
   aquí sólo va la maquetación propia de esta pantalla, ningún color suelto nuevo. */

.sps-shell[b-2gdop55jgf] {
    display: block;
    padding: 1.5rem 1rem 2.5rem;
    overflow-y: auto;
}

.sps-wrap[b-2gdop55jgf] {
    max-width: 62rem;
    margin: 0 auto;
}

/* ── Carga ─────────────────────────────────────────────────── */
.sps-loading[b-2gdop55jgf] {
    min-height: 55vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    color: var(--corp-text-sub);
    font-size: var(--corp-fs-md);
}

.sps-spinner[b-2gdop55jgf] {
    width: 30px;
    height: 30px;
    border: 3px solid #e2e8f0;
    border-top-color: #0f766e;
    border-radius: 50%;
    animation: sps-spin-b-2gdop55jgf 0.65s linear infinite;
}

@keyframes sps-spin-b-2gdop55jgf {
    to { transform: rotate(360deg); }
}

/* ── Aviso de proyecto inexistente / ajeno ─────────────────── */
.sps-warn[b-2gdop55jgf] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--corp-warn-bg);
    border: 1px solid #fcd34d;
    color: var(--corp-warn);
    border-radius: 10px;
    padding: 0.6rem 0.9rem;
    font-size: var(--corp-fs-body);
    margin-bottom: 1.1rem;
}

/* ── Tarjeta principal ─────────────────────────────────────── */
.sps-hero[b-2gdop55jgf] {
    background: var(--corp-bg-card);
    border: 1px solid var(--corp-border);
    border-radius: 16px;
    padding: 2.25rem 2rem 1.75rem;
    text-align: center;
    box-shadow: 0 12px 30px rgba(15,23,42,0.06);
}

.sps-art[b-2gdop55jgf] {
    width: 120px;
    height: 120px;
    margin: 0 auto 0.85rem;
}

.sps-art svg[b-2gdop55jgf] { width: 100%; height: 100%; }

.sps-title[b-2gdop55jgf] {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--corp-navy);
    letter-spacing: -0.01em;
}

.sps-sub[b-2gdop55jgf] {
    margin: 0.2rem 0 0;
    font-size: var(--corp-fs-md);
    color: var(--corp-text-sub);
    line-height: 1.55;
}

.sps-sub-hero[b-2gdop55jgf] {
    max-width: 34rem;
    margin: 0.5rem auto 0;
}

/* ── Pipeline de fases ─────────────────────────────────────── */
.sps-pipe[b-2gdop55jgf] {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    margin: 1.6rem auto 0.4rem;
    max-width: 40rem;
}

.sps-pipe-step[b-2gdop55jgf] {
    flex: 1;
    position: relative;
    padding: 0.35rem 0.25rem;
    opacity: 0.45;
}

.sps-pipe-step.on[b-2gdop55jgf] { opacity: 1; }

/* Línea que une los pasos: se dibuja detrás del punto, nunca antes del primero. */
.sps-pipe-step[b-2gdop55jgf]::before {
    content: "";
    position: absolute;
    top: 11px;
    right: 50%;
    left: -50%;
    height: 2px;
    background: var(--corp-border);
}

.sps-pipe-step:first-child[b-2gdop55jgf]::before { display: none; }

.sps-pipe-dot[b-2gdop55jgf] {
    position: relative;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin: 5px auto 0.5rem;
    background: #cbd5e1;
    box-shadow: 0 0 0 4px #fff;
}

.sps-pipe-step.f-legal.on .sps-pipe-dot[b-2gdop55jgf]     { background: #dc2626; }
.sps-pipe-step.f-ing.on .sps-pipe-dot[b-2gdop55jgf]       { background: #4f46e5; }
.sps-pipe-step.f-rev.on .sps-pipe-dot[b-2gdop55jgf]       { background: #d97706; }
.sps-pipe-step.f-eje.on .sps-pipe-dot[b-2gdop55jgf]       { background: #059669; }
.sps-pipe-step.f-backlog.on .sps-pipe-dot[b-2gdop55jgf]   { background: #64748b; }

.sps-pipe-n[b-2gdop55jgf] {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--corp-navy);
    line-height: 1;
}

.sps-pipe-lbl[b-2gdop55jgf] {
    font-size: var(--corp-fs-xs);
    color: var(--corp-text-sub);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 0.2rem;
}

/* ── Aviso de "ni un proyecto en ninguna fase" ─────────────── */
.sps-none[b-2gdop55jgf] {
    margin-top: 1.4rem;
    padding: 0.9rem;
    border: 1px dashed var(--corp-border);
    border-radius: 12px;
    font-size: var(--corp-fs-body);
    color: var(--corp-text-sub);
}

/* ── Acciones ──────────────────────────────────────────────── */
.sps-actions[b-2gdop55jgf] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin-top: 1.5rem;
}

.sps-actions .corp-btn[b-2gdop55jgf] { text-decoration: none; }

@media (max-width: 640px) {
    .sps-pipe-lbl[b-2gdop55jgf] { font-size: 0.52rem; }
    .sps-hero[b-2gdop55jgf] { padding: 1.5rem 1rem 1.25rem; }
}
/* /Components/Pages/PM/ComSolicitudCompraFicha.razor.rz.scp.css */
/* Backdrop */
.scf-backdrop[b-3ir0413a1f] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1100;
    padding: 1rem;
}

/* Modal */
.scf-modal[b-3ir0413a1f] {
    background: white;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.18);
    width: 100%;
    max-width: 820px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    animation: scf-slide-in-b-3ir0413a1f 0.18s ease-out;
}

@keyframes scf-slide-in-b-3ir0413a1f {
    from { transform: translateY(10px); opacity: 0; }
    to   { transform: translateY(0);   opacity: 1; }
}

/* Header */
.scf-header[b-3ir0413a1f] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 1rem;
    background: #1e3a5f;
    color: white;
    border-radius: 8px 8px 0 0;
    flex-shrink: 0;
}

.scf-title[b-3ir0413a1f] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    font-size: 0.9rem;
    margin: 0;
}

.scf-btn-close[b-3ir0413a1f] {
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: white;
    width: 26px;
    height: 26px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.scf-btn-close:hover[b-3ir0413a1f] {
    background: rgba(255, 255, 255, 0.2);
}

/* Body */
.scf-body[b-3ir0413a1f] {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Form row */
.scf-form-row[b-3ir0413a1f] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.scf-field[b-3ir0413a1f] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 1;
    min-width: 200px;
}

.scf-field-sm[b-3ir0413a1f] {
    flex: 0 0 180px;
    min-width: 150px;
}

.scf-label[b-3ir0413a1f] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.scf-required[b-3ir0413a1f] {
    color: #ef4444;
}

.scf-input[b-3ir0413a1f] {
    padding: 0.4rem 0.6rem;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 0.82rem;
    color: #1e293b;
    background: white;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.scf-input:focus[b-3ir0413a1f] {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.12);
}

/* Table */
.scf-table-wrapper[b-3ir0413a1f] {
    flex: 1;
    overflow-y: auto;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
}

.scf-table[b-3ir0413a1f] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.scf-table thead th[b-3ir0413a1f] {
    background: #f1f5f9;
    padding: 0.45rem 0.5rem;
    font-weight: 600;
    color: #475569;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
}

.scf-table tbody td[b-3ir0413a1f] {
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
}

.scf-table tbody tr:last-child td[b-3ir0413a1f] {
    border-bottom: none;
}

.scf-table .center[b-3ir0413a1f] {
    text-align: center;
}

.scf-table .right[b-3ir0413a1f] {
    text-align: right;
    font-family: Consolas, monospace;
}

.scf-deficit[b-3ir0413a1f] {
    color: #dc2626;
    font-weight: 700;
    font-family: Consolas, monospace;
    text-align: right;
}

.scf-ok[b-3ir0413a1f] {
    color: #16a34a;
    font-weight: 600;
}

.scf-missing[b-3ir0413a1f] {
    color: #94a3b8;
}

.scf-row-zero[b-3ir0413a1f] {
    opacity: 0.5;
}

/* Quantity input */
.scf-qty-input[b-3ir0413a1f] {
    width: 100%;
    padding: 0.3rem 0.4rem;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-size: 0.82rem;
    font-family: Consolas, monospace;
    text-align: right;
    color: #1e293b;
    background: white;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.scf-qty-input:focus[b-3ir0413a1f] {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
}

/* Remove button */
.scf-btn-remove[b-3ir0413a1f] {
    background: white;
    border: 1px solid #e2e8f0;
    color: #ef4444;
    width: 26px;
    height: 26px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    padding: 0;
    transition: all 0.15s;
}

.scf-btn-remove:hover[b-3ir0413a1f] {
    background: #fee2e2;
    border-color: #fca5a5;
}

/* Error */
.scf-error[b-3ir0413a1f] {
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    color: #b91c1c;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

/* Footer */
.scf-footer[b-3ir0413a1f] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 1rem;
    border-top: 1px solid #e2e8f0;
    flex-shrink: 0;
    background: #f8fafc;
    border-radius: 0 0 8px 8px;
}

.scf-footer-info[b-3ir0413a1f] {
    font-size: 0.75rem;
    color: #94a3b8;
}

.scf-footer-actions[b-3ir0413a1f] {
    display: flex;
    gap: 0.6rem;
}

.scf-btn-cancel[b-3ir0413a1f] {
    padding: 0.4rem 1rem;
    border: 1px solid #cbd5e1;
    background: white;
    color: #475569;
    border-radius: 6px;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
}

.scf-btn-cancel:hover:not(:disabled)[b-3ir0413a1f] {
    background: #f1f5f9;
    border-color: #94a3b8;
}

.scf-btn-cancel:disabled[b-3ir0413a1f] {
    opacity: 0.5;
    cursor: not-allowed;
}

.scf-btn-save[b-3ir0413a1f] {
    padding: 0.4rem 1rem;
    background: #1e3a5f;
    color: white;
    border: none;
    border-radius: 6px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    transition: background 0.15s;
}

.scf-btn-save:hover:not(:disabled)[b-3ir0413a1f] {
    background: #1e40af;
}

.scf-btn-save:disabled[b-3ir0413a1f] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Spinner */
.scf-spinner[b-3ir0413a1f] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: white;
    border-radius: 50%;
    animation: scf-spin-b-3ir0413a1f 0.6s linear infinite;
    flex-shrink: 0;
}

@keyframes scf-spin-b-3ir0413a1f {
    to { transform: rotate(360deg); }
}
/* /Components/Pages/PM/EvaluacionesProyecto.razor.rz.scp.css */
/* ============================================================
   Evaluaciones del proyecto — alineado al sistema corp-*
   Compacto y minimalista
   ============================================================ */
.evp-root[b-kiu4redbz5] {
    --evp-border: #d1d9e0;
    --evp-border-row: #eef2f6;
    --evp-bg: #f5f6f8;
    --evp-head: #f5f7fa;
    --evp-navy: #1e3a5a;
    --evp-blue: #1565c0;
    --evp-ok: #166534;
    --evp-bad: #991b1b;
    --evp-warn: #92400e;
    --evp-pend: #4338ca;
    --evp-text: #334155;
    --evp-sub: #64748b;
    --evp-muted: #94a3b8;
    color: var(--evp-text);
    font-size: 0.78rem;
    padding: 0.75rem 1rem 1rem;
}

/* ---------- Loading / empty ---------- */
.evp-loading[b-kiu4redbz5] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 180px;
    color: var(--evp-sub);
    font-size: 0.78rem;
}

.evp-spinner[b-kiu4redbz5] {
    width: 18px;
    height: 18px;
    border: 2px solid #dbeafe;
    border-top-color: var(--evp-blue);
    border-radius: 50%;
    animation: evp-spin-b-kiu4redbz5 0.7s linear infinite;
}

@keyframes evp-spin-b-kiu4redbz5 {
    to { transform: rotate(360deg); }
}

.evp-empty-state[b-kiu4redbz5] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.25rem;
    min-height: 220px;
    padding: 1.5rem;
}

.evp-empty-icon[b-kiu4redbz5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 4px;
    background: #dcfce7;
    color: var(--evp-ok);
    margin-bottom: 0.35rem;
}

.evp-empty-icon.light[b-kiu4redbz5] {
    background: #eef2f6;
    color: var(--evp-muted);
}

.evp-empty-state h3[b-kiu4redbz5] {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--evp-navy);
}

.evp-empty-state p[b-kiu4redbz5] {
    margin: 0;
    max-width: 320px;
    color: var(--evp-sub);
    font-size: 0.74rem;
    line-height: 1.4;
}

/* ---------- Layout ---------- */
.evp-layout[b-kiu4redbz5] {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: start;
}

/* ---------- Sidebar ---------- */
.evp-side[b-kiu4redbz5] {
    background: #fff;
    border: 1px solid var(--evp-border);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: 74vh;
}

.evp-side-tools[b-kiu4redbz5] {
    padding: 0.5rem;
    border-bottom: 1px solid var(--evp-border);
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.evp-search[b-kiu4redbz5] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--evp-bg);
    border: 1px solid var(--evp-border);
    border-radius: 4px;
    padding: 0.3rem 0.5rem;
    color: var(--evp-sub);
}

.evp-search:focus-within[b-kiu4redbz5] {
    border-color: var(--evp-blue);
    background: #fff;
}

.evp-search input[b-kiu4redbz5] {
    border: 0;
    outline: 0;
    background: transparent;
    flex: 1;
    font-size: 0.74rem;
    color: var(--evp-text);
    min-width: 0;
}

.evp-chips[b-kiu4redbz5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.evp-chip[b-kiu4redbz5] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid var(--evp-border);
    background: #fff;
    color: var(--evp-sub);
    border-radius: 4px;
    padding: 0.2rem 0.5rem;
    font-size: 0.66rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.1s;
}

.evp-chip:hover[b-kiu4redbz5] { background: #f8fafc; }

.evp-chip.active[b-kiu4redbz5] {
    background: var(--evp-blue);
    border-color: var(--evp-blue);
    color: #fff;
}

.evp-chip-count[b-kiu4redbz5] {
    background: rgba(15, 23, 42, 0.08);
    border-radius: 3px;
    padding: 0 0.3rem;
    font-size: 0.6rem;
    font-weight: 700;
}

.evp-chip.active .evp-chip-count[b-kiu4redbz5] {
    background: rgba(255, 255, 255, 0.22);
}

.evp-list[b-kiu4redbz5] {
    overflow-y: auto;
    flex: 1;
}

.evp-list-empty[b-kiu4redbz5] {
    padding: 1.25rem 0.7rem;
    text-align: center;
    color: var(--evp-sub);
    font-size: 0.72rem;
}

.evp-item[b-kiu4redbz5] {
    display: flex;
    width: 100%;
    text-align: left;
    background: #fff;
    border: 0;
    border-bottom: 1px solid var(--evp-border-row);
    border-left: 3px solid transparent;
    padding: 0;
    cursor: pointer;
    transition: background 0.1s;
}

.evp-item:hover[b-kiu4redbz5] { background: #f8fafc; }

.evp-item.active[b-kiu4redbz5] {
    background: #eff6ff;
    border-left-color: var(--evp-blue);
}

.evp-item-bar[b-kiu4redbz5] { display: none; }

.evp-item-body[b-kiu4redbz5] {
    flex: 1;
    padding: 0.5rem 0.65rem;
    min-width: 0;
}

.evp-item-top[b-kiu4redbz5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    margin-bottom: 0.2rem;
}

.evp-item-id[b-kiu4redbz5] {
    font-size: 0.66rem;
    font-weight: 700;
    color: var(--evp-navy);
}

.evp-item-title[b-kiu4redbz5] {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--evp-text);
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.evp-item-meta[b-kiu4redbz5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    color: var(--evp-sub);
    font-size: 0.62rem;
    margin: 0.15rem 0 0.3rem;
}

.evp-item-progress[b-kiu4redbz5] {
    height: 4px;
    border-radius: 2px;
    background: var(--evp-border-row);
    overflow: hidden;
}

.evp-item-progress-fill[b-kiu4redbz5] {
    height: 100%;
    transition: width 0.2s;
}

.evp-item-progress-fill.c-ok[b-kiu4redbz5] { background: #16a34a; }
.evp-item-progress-fill.c-bad[b-kiu4redbz5] { background: #dc2626; }
.evp-item-progress-fill.c-pend[b-kiu4redbz5] { background: #6366f1; }
.evp-item-progress-fill.c-neutral[b-kiu4redbz5] { background: #94a3b8; }

.evp-item-foot[b-kiu4redbz5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    margin-top: 0.3rem;
    color: var(--evp-sub);
    font-size: 0.62rem;
    font-weight: 500;
}

.evp-item-photos[b-kiu4redbz5] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    color: var(--evp-blue);
}

/* ---------- Badges & pills ---------- */
.evp-badge[b-kiu4redbz5] {
    display: inline-flex;
    align-items: center;
    border-radius: 3px;
    padding: 0.08rem 0.4rem;
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.evp-badge.ok[b-kiu4redbz5] { background: #dcfce7; color: var(--evp-ok); }
.evp-badge.bad[b-kiu4redbz5] { background: #fee2e2; color: var(--evp-bad); }
.evp-badge.pend[b-kiu4redbz5] { background: #e0e7ff; color: var(--evp-pend); }
.evp-badge.neutral[b-kiu4redbz5] { background: #f1f5f9; color: var(--evp-sub); }

.evp-pill[b-kiu4redbz5] {
    display: inline-flex;
    align-items: center;
    border-radius: 3px;
    padding: 0.08rem 0.4rem;
    font-size: 0.64rem;
    font-weight: 700;
}

.evp-pill.ok[b-kiu4redbz5] { background: #dcfce7; color: var(--evp-ok); }
.evp-pill.bad[b-kiu4redbz5] { background: #fee2e2; color: var(--evp-bad); }
.evp-pill.pend[b-kiu4redbz5] { background: #fef3c7; color: var(--evp-warn); }
.evp-pill.blue[b-kiu4redbz5] { background: #dbeafe; color: var(--evp-blue); }

/* ---------- Main detail ---------- */
.evp-main[b-kiu4redbz5] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.evp-detail-empty[b-kiu4redbz5] {
    background: #fff;
    border: 1px solid var(--evp-border);
    border-radius: 4px;
    min-height: 280px;
}

.evp-detail-head[b-kiu4redbz5] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    background: #1a2a3a;
    color: #fff;
    border-radius: 4px;
    border-left: 3px solid var(--evp-blue);
    padding: 0.55rem 0.85rem;
    flex-wrap: wrap;
}

.evp-detail-id[b-kiu4redbz5] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.62rem;
    font-weight: 500;
    color: #94a3b8;
}

.evp-detail-title[b-kiu4redbz5] {
    margin: 0.2rem 0 0.3rem;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
}

.evp-detail-sub[b-kiu4redbz5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.evp-detail-meta[b-kiu4redbz5] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.66rem;
    color: #94a3b8;
}

.evp-detail-score[b-kiu4redbz5] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-shrink: 0;
}

.evp-mini-ring[b-kiu4redbz5] {
    --pct: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: conic-gradient(#60a5fa calc(var(--pct) * 1%), rgba(255,255,255,0.15) 0);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.evp-mini-ring[b-kiu4redbz5]::before {
    content: "";
    position: absolute;
    inset: 5px;
    border-radius: 50%;
    background: #1a2a3a;
}

.evp-mini-ring span[b-kiu4redbz5] {
    position: relative;
    font-size: 0.62rem;
    font-weight: 700;
    color: #fff;
}

.evp-detail-counts[b-kiu4redbz5] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    font-size: 0.62rem;
    font-weight: 600;
}

.evp-detail-counts .ok[b-kiu4redbz5] { color: #86efac; }
.evp-detail-counts .bad[b-kiu4redbz5] { color: #fca5a5; }
.evp-detail-counts .pend[b-kiu4redbz5] { color: #fcd34d; }

/* ---------- Note ---------- */
.evp-note[b-kiu4redbz5] {
    display: flex;
    gap: 0.5rem;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-left: 3px solid #d97706;
    border-radius: 4px;
    padding: 0.5rem 0.65rem;
    color: #78350f;
}

.evp-note svg[b-kiu4redbz5] { flex-shrink: 0; margin-top: 0.05rem; color: #d97706; }
.evp-note strong[b-kiu4redbz5] { display: block; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 0.1rem; }
.evp-note p[b-kiu4redbz5] { margin: 0; font-size: 0.72rem; line-height: 1.35; }

/* ---------- Card ---------- */
.evp-card[b-kiu4redbz5] {
    background: #fff;
    border: 1px solid var(--evp-border);
    border-radius: 4px;
    overflow: hidden;
}

.evp-card-head[b-kiu4redbz5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    border-bottom: 1px solid var(--evp-border);
    background: var(--evp-head);
}

.evp-card-title[b-kiu4redbz5] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--evp-navy);
}

.evp-card-ico[b-kiu4redbz5] { font-size: 0.8rem; }

.evp-card-count[b-kiu4redbz5] {
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--evp-sub);
}

.evp-card-pad[b-kiu4redbz5] { padding: 0.6rem 0.75rem; }

/* ---------- Table ---------- */
.evp-table-wrap[b-kiu4redbz5] { overflow-x: auto; }

.evp-table[b-kiu4redbz5] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.72rem;
}

.evp-table thead th[b-kiu4redbz5] {
    text-align: left;
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
    color: #475569;
    background: var(--evp-head);
    padding: 0.38rem 0.55rem;
    border-bottom: 1px solid var(--evp-border);
    white-space: nowrap;
}

.evp-table tbody td[b-kiu4redbz5] {
    padding: 0.4rem 0.55rem;
    border-bottom: 1px solid var(--evp-border-row);
    vertical-align: top;
}

.evp-table tbody tr:last-child td[b-kiu4redbz5] { border-bottom: 0; }
.evp-table tbody tr:hover[b-kiu4redbz5] { background: #fafbfc; }
.evp-table .c[b-kiu4redbz5] { text-align: center; }

.evp-table tr.row-bad[b-kiu4redbz5] { background: #fef6f6; }
.evp-table tr.row-bad:hover[b-kiu4redbz5] { background: #fdeeee; }

.evp-param[b-kiu4redbz5] { font-weight: 600; color: var(--evp-text); }
.evp-param-desc[b-kiu4redbz5] { font-size: 0.62rem; color: var(--evp-sub); line-height: 1.25; margin-top: 0.1rem; }
.evp-criterio[b-kiu4redbz5] { color: var(--evp-sub); }
.evp-valor[b-kiu4redbz5] { font-weight: 600; font-family: Consolas, Monaco, monospace; }
.evp-obs[b-kiu4redbz5] { color: #475569; max-width: 200px; }
.evp-muted[b-kiu4redbz5] { color: var(--evp-muted); }

/* ---------- Thumbs ---------- */
.evp-thumbs[b-kiu4redbz5] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

.evp-thumb[b-kiu4redbz5] {
    width: 26px;
    height: 26px;
    border: 1px solid var(--evp-border);
    border-radius: 4px;
    overflow: hidden;
    padding: 0;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.1s;
}

.evp-thumb:hover[b-kiu4redbz5] { border-color: var(--evp-blue); }
.evp-thumb img[b-kiu4redbz5] { width: 100%; height: 100%; object-fit: cover; display: block; }

.evp-more[b-kiu4redbz5] {
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--evp-blue);
}

/* ---------- Gallery ---------- */
.evp-gallery[b-kiu4redbz5] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 0.5rem;
}

.evp-gallery-empty[b-kiu4redbz5] {
    text-align: center;
    color: var(--evp-sub);
    font-size: 0.72rem;
    padding: 1rem 0;
}

.evp-photo[b-kiu4redbz5] {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--evp-border);
    border-radius: 4px;
    cursor: pointer;
    overflow: hidden;
    padding: 0;
    text-align: left;
    transition: border-color 0.1s;
}

.evp-photo:hover[b-kiu4redbz5] { border-color: var(--evp-blue); }

.evp-photo-img[b-kiu4redbz5] {
    display: block;
    height: 90px;
    background: #f1f5f9;
}

.evp-photo-img img[b-kiu4redbz5] { width: 100%; height: 100%; object-fit: cover; display: block; }

.evp-photo-info[b-kiu4redbz5] { padding: 0.35rem 0.45rem 0.45rem; }

.evp-photo-name[b-kiu4redbz5] {
    display: block;
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--evp-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.evp-photo-info small[b-kiu4redbz5] {
    display: block;
    font-size: 0.58rem;
    color: var(--evp-sub);
    margin-top: 0.1rem;
}

/* ---------- Lightbox ---------- */
.evp-lightbox[b-kiu4redbz5] {
    position: fixed;
    inset: 0;
    background: rgba(8, 15, 26, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1200;
    padding: 2rem;
}

.evp-lightbox-close[b-kiu4redbz5] {
    position: absolute;
    top: 1rem;
    right: 1.2rem;
    width: 32px;
    height: 32px;
    border-radius: 4px;
    border: 0;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 1rem;
    cursor: pointer;
}

.evp-lightbox-close:hover[b-kiu4redbz5] { background: rgba(255, 255, 255, 0.26); }

.evp-lightbox-inner[b-kiu4redbz5] {
    max-width: 90vw;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    background: #1a2a3a;
    border-radius: 4px;
    overflow: hidden;
}

.evp-lightbox-inner img[b-kiu4redbz5] {
    max-width: 90vw;
    max-height: 78vh;
    object-fit: contain;
    display: block;
}

.evp-lightbox-bar[b-kiu4redbz5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 0.85rem;
    color: #e2e8f0;
    font-size: 0.72rem;
}

.evp-lightbox-open[b-kiu4redbz5] {
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: transparent;
    color: #fff;
    border-radius: 4px;
    padding: 0.25rem 0.6rem;
    font-size: 0.68rem;
    font-weight: 500;
    cursor: pointer;
}

.evp-lightbox-open:hover[b-kiu4redbz5] { background: rgba(255, 255, 255, 0.12); }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
    .evp-layout[b-kiu4redbz5] { grid-template-columns: 1fr; }
    .evp-side[b-kiu4redbz5] { max-height: none; }
    .evp-list[b-kiu4redbz5] { max-height: 360px; }
}

@media (max-width: 640px) {
    .evp-detail-head[b-kiu4redbz5] { flex-direction: column; align-items: flex-start; }
}
/* /Components/Pages/PM/PagDetalleProjectManager.razor.rz.scp.css */
/* ============================================================
   PagDetalleProjectManager - Scoped CSS
   Tema: teal / slate profesional
   ============================================================ */

/* ---------- Stats del toolbar (fondo navy oscuro) ---------- */
/* El azul corporativo (#1565c0) queda muy oscuro sobre el navy del toolbar
   y se ve apagado/"con caja". Aquí subimos el contraste sin fondo alguno. */
.corp-toolbar .corp-stat-val[b-ae06ink6o9] {
    background: transparent;
}
.corp-toolbar .corp-stat-val.blue[b-ae06ink6o9] {
    color: #7cc4ff;
}

/* ---------- Loading ---------- */
.pmd-loading[b-ae06ink6o9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    color: #64748b;
    font-size: 0.9rem;
}

.pmd-spinner[b-ae06ink6o9] {
    width: 36px;
    height: 36px;
    border: 3px solid #e2e8f0;
    border-top-color: #0f766e;
    border-radius: 50%;
    animation: pmd-spin-b-ae06ink6o9 0.8s linear infinite;
}

@keyframes pmd-spin-b-ae06ink6o9 {
    to { transform: rotate(360deg); }
}

/* ---------- Container ---------- */
.pmd-container[b-ae06ink6o9] {
    padding: 1rem 1.25rem 2rem;
    width: 100%;
    max-width: none;
    margin: 0;
    font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
    color: #1e293b;
    box-sizing: border-box;
}

/* ---------- Header ---------- */
.pmd-header[b-ae06ink6o9] {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.pmd-back[b-ae06ink6o9] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: #0f766e;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    margin-bottom: 0.75rem;
    transition: color 0.15s;
}

.pmd-back:hover[b-ae06ink6o9] { color: #134e4a; }

.pmd-header-row[b-ae06ink6o9] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.pmd-header-left[b-ae06ink6o9] { flex: 1; min-width: 280px; }

.pmd-title-row[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.45rem;
}

.pmd-title[b-ae06ink6o9] {
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0;
    color: #0f172a;
    letter-spacing: -0.01em;
}

.pmd-badge[b-ae06ink6o9] {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    background: #ccfbf1;
    color: #115e59;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.pmd-badge-outline[b-ae06ink6o9] {
    display: inline-flex;
    padding: 0.2rem 0.55rem;
    border: 1px solid #cbd5e1;
    color: #64748b;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 6px;
    background: #f8fafc;
}

.pmd-status[b-ae06ink6o9] {
    display: inline-flex;
    padding: 0.2rem 0.6rem;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.pmd-status-propuesta[b-ae06ink6o9] { background: #fef3c7; color: #92400e; }
.pmd-status-activo[b-ae06ink6o9]    { background: #dcfce7; color: #166534; }
.pmd-status-pausado[b-ae06ink6o9]   { background: #fed7aa; color: #9a3412; }
.pmd-status-cerrado[b-ae06ink6o9]   { background: #e2e8f0; color: #475569; }

.pmd-meta[b-ae06ink6o9] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    color: #64748b;
    font-size: 0.8rem;
}

.pmd-meta-item[b-ae06ink6o9] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

/* ---------- Header stats ---------- */
.pmd-header-stats[b-ae06ink6o9] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.pmd-hstat[b-ae06ink6o9] {
    min-width: 84px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.55rem 0.75rem;
    text-align: center;
    transition: all 0.15s;
}

.pmd-hstat.clickable[b-ae06ink6o9] { cursor: pointer; }

.pmd-hstat.clickable:hover[b-ae06ink6o9] {
    background: #f1f5f9;
    border-color: #0f766e;
    transform: translateY(-1px);
}

.pmd-hstat-val[b-ae06ink6o9] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.1;
}

.pmd-hstat-lbl[b-ae06ink6o9] {
    font-size: 0.68rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 0.2rem;
    font-weight: 600;
}

/* ---------- Body / tabs ---------- */
.pmd-body[b-ae06ink6o9] {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.pmd-tab-card[b-ae06ink6o9] {
    padding: 1.25rem;
}

/* ---------- Summary (Información General) ---------- */
.pmd-summary[b-ae06ink6o9] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Alert ribbon */
.pmd-alert[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 0.95rem;
    border-radius: 8px;
    font-size: 0.82rem;
    font-weight: 500;
    border-left: 3px solid transparent;
}

.pmd-alert.success[b-ae06ink6o9] { background: #f0fdf4; color: #166534; border-left-color: #16a34a; }
.pmd-alert.warning[b-ae06ink6o9] { background: #fffbeb; color: #92400e; border-left-color: #f59e0b; }
.pmd-alert.danger[b-ae06ink6o9]  { background: #fef2f2; color: #991b1b; border-left-color: #dc2626; }
.pmd-alert.neutral[b-ae06ink6o9] { background: #f1f5f9; color: #475569; border-left-color: #94a3b8; }

/* Health cards */
.pmd-health-row[b-ae06ink6o9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.65rem;
}

.pmd-health-card[b-ae06ink6o9] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.75rem 0.85rem;
    transition: border-color 0.15s;
}

.pmd-health-card:hover[b-ae06ink6o9] { border-color: #cbd5e1; }

.pmd-health-dot[b-ae06ink6o9] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-top: 0.3rem;
    flex-shrink: 0;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.04);
}

.dot-green[b-ae06ink6o9]  { background: #22c55e; }
.dot-yellow[b-ae06ink6o9] { background: #f59e0b; }
.dot-red[b-ae06ink6o9]    { background: #ef4444; }
.dot-gray[b-ae06ink6o9]   { background: #94a3b8; }

.pmd-health-body[b-ae06ink6o9] { flex: 1; min-width: 0; }

.pmd-health-lbl[b-ae06ink6o9] {
    font-size: 0.7rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.pmd-health-val[b-ae06ink6o9] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0.15rem 0;
}

.pmd-health-sub[b-ae06ink6o9] {
    font-size: 0.72rem;
    color: #94a3b8;
}

/* Progress */
.pmd-progress[b-ae06ink6o9] {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.85rem 1rem;
}

.pmd-progress-head[b-ae06ink6o9] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.55rem;
}

.pmd-progress-title[b-ae06ink6o9] {
    font-size: 0.82rem;
    font-weight: 600;
    color: #334155;
}

.pmd-progress-pct[b-ae06ink6o9] {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f766e;
}

.pmd-bar-track[b-ae06ink6o9] {
    height: 8px;
    background: #e2e8f0;
    border-radius: 999px;
    overflow: hidden;
}

.pmd-bar-fill[b-ae06ink6o9] {
    height: 100%;
    background: linear-gradient(90deg, #0f766e, #14b8a6);
    border-radius: 999px;
    transition: width 0.4s ease;
}

.pmd-bar-fill.warn[b-ae06ink6o9] { background: linear-gradient(90deg, #f59e0b, #f97316); }
.pmd-bar-fill.crit[b-ae06ink6o9] { background: linear-gradient(90deg, #dc2626, #ef4444); }

.pmd-progress-dates[b-ae06ink6o9] {
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    color: #64748b;
    margin-top: 0.45rem;
}

/* Bottom two columns */
.pmd-bottom[b-ae06ink6o9] {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(320px, 1.4fr);
    gap: 0.85rem;
}

@media (min-width: 1600px) {
    .pmd-bottom[b-ae06ink6o9] { grid-template-columns: minmax(360px, 1fr) minmax(360px, 1.6fr); }
}

@media (max-width: 900px) {
    .pmd-bottom[b-ae06ink6o9] { grid-template-columns: 1fr; }
}

/* Panel */
.pmd-panel[b-ae06ink6o9] {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.85rem 1rem;
}

.pmd-panel-head[b-ae06ink6o9] {
    font-size: 0.82rem;
    font-weight: 700;
    color: #0f172a;
    padding-bottom: 0.55rem;
    margin-bottom: 0.55rem;
    border-bottom: 1px solid #e2e8f0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.pmd-detail-row[b-ae06ink6o9] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.4rem 0;
    border-bottom: 1px dashed #f1f5f9;
    font-size: 0.82rem;
}

.pmd-detail-row:last-child[b-ae06ink6o9] { border-bottom: none; }

.pmd-dk[b-ae06ink6o9] { color: #64748b; font-weight: 500; }
.pmd-dv[b-ae06ink6o9] { color: #0f172a; font-weight: 600; }

/* Team */
.pmd-team-row[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0;
    border-bottom: 1px dashed #f1f5f9;
}

.pmd-team-row:last-child[b-ae06ink6o9] { border-bottom: none; }

.pmd-avatar[b-ae06ink6o9] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-weight: 700;
    font-size: 0.78rem;
    flex-shrink: 0;
    box-shadow: 0 2px 4px rgba(15, 23, 42, 0.1);
}

.pmd-team-texts[b-ae06ink6o9] { flex: 1; min-width: 0; }

.pmd-team-role[b-ae06ink6o9] {
    font-size: 0.7rem;
    color: #64748b;
    font-weight: 500;
    line-height: 1.3;
}

.pmd-team-name[b-ae06ink6o9] {
    font-size: 0.85rem;
    font-weight: 600;
    color: #0f172a;
    margin-top: 0.1rem;
}

.pmd-whatsapp[b-ae06ink6o9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #25d366;
    color: #ffffff;
    flex-shrink: 0;
    transition: transform 0.15s, background 0.15s;
    text-decoration: none;
}

.pmd-whatsapp:hover[b-ae06ink6o9] { background: #128c7e; transform: scale(1.08); }

.pmd-whatsapp.disabled[b-ae06ink6o9] {
    background: #cbd5e1;
    pointer-events: none;
    cursor: not-allowed;
}

/* Description */
.pmd-no-desc[b-ae06ink6o9] {
    font-size: 0.82rem;
    color: #94a3b8;
    font-style: italic;
    padding: 0.5rem 0;
}

.pmd-desc-body[b-ae06ink6o9] {
    font-size: 0.85rem;
    color: #334155;
    line-height: 1.55;
}

/* Location */
.pmd-location-panel[b-ae06ink6o9] {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.85rem 1rem;
}

.pmd-location-head[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: #0f172a;
    padding-bottom: 0.55rem;
    margin-bottom: 0.55rem;
    border-bottom: 1px solid #e2e8f0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.pmd-location-body[b-ae06ink6o9] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.pmd-location-info[b-ae06ink6o9] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.pmd-location-row[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    flex-wrap: wrap;
}

.pmd-location-label[b-ae06ink6o9] {
    color: #64748b;
    font-weight: 500;
    min-width: 80px;
}

.pmd-location-value[b-ae06ink6o9] {
    color: #0f172a;
    font-weight: 600;
    flex: 1;
}

.pmd-location-coords[b-ae06ink6o9] {
    color: #0f766e;
    font-family: 'Consolas', monospace;
    font-size: 0.76rem;
    background: #f0fdfa;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
}

.pmd-map-container[b-ae06ink6o9] {
    width: 100%;
    height: 260px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    background: #f1f5f9;
}

@media (min-width: 1400px) {
    .pmd-map-container[b-ae06ink6o9] { height: 320px; }
}

.pmd-no-location[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.82rem;
    color: #94a3b8;
    font-style: italic;
    padding: 0.85rem;
    background: #f8fafc;
    border-radius: 8px;
    justify-content: center;
}

/* ---------- Weather ---------- */
.pmd-weather-panel[b-ae06ink6o9] {
    background: linear-gradient(135deg, #eff6ff 0%, #f0fdfa 100%);
    border: 1px solid #bae6fd;
    border-radius: 12px;
    padding: 1rem 1.15rem;
}

.pmd-weather-head[b-ae06ink6o9] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.pmd-weather-head-left[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: #0c4a6e;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.pmd-weather-updated[b-ae06ink6o9] {
    font-size: 0.72rem;
    color: #64748b;
}

.pmd-weather-refresh[b-ae06ink6o9] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.3rem 0.6rem;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font-size: 0.72rem;
    font-weight: 600;
    color: #334155;
    cursor: pointer;
    transition: all 0.15s;
}

.pmd-weather-refresh:hover:not(:disabled)[b-ae06ink6o9] {
    background: #f1f5f9;
    border-color: #0f766e;
    color: #0f766e;
}

.pmd-weather-refresh:disabled[b-ae06ink6o9] { opacity: 0.5; cursor: not-allowed; }

.pmd-weather-loading[b-ae06ink6o9],
.pmd-weather-error[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1.25rem;
    font-size: 0.82rem;
    color: #64748b;
}

.pmd-weather-error[b-ae06ink6o9] { color: #991b1b; }

.pmd-weather-body[b-ae06ink6o9] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.pmd-weather-main[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.pmd-weather-icon[b-ae06ink6o9] {
    font-size: 2.5rem;
    line-height: 1;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
}

.pmd-weather-temp-block[b-ae06ink6o9] { flex: 1; min-width: 180px; }

.pmd-weather-temp[b-ae06ink6o9] {
    font-size: 2rem;
    font-weight: 700;
    color: #0c4a6e;
    line-height: 1;
}

.pmd-weather-desc[b-ae06ink6o9] {
    font-size: 0.85rem;
    color: #334155;
    text-transform: capitalize;
    margin-top: 0.15rem;
}

.pmd-weather-feels[b-ae06ink6o9] {
    font-size: 0.72rem;
    color: #64748b;
    margin-top: 0.2rem;
}

.pmd-weather-condition-badge[b-ae06ink6o9] {
    display: inline-flex;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    align-self: flex-start;
}

.pmd-weather-condition-badge.favorable[b-ae06ink6o9]    { background: #dcfce7; color: #166534; }
.pmd-weather-condition-badge.precaution[b-ae06ink6o9]   { background: #fef3c7; color: #92400e; }
.pmd-weather-condition-badge.desfavorable[b-ae06ink6o9] { background: #fed7aa; color: #9a3412; }
.pmd-weather-condition-badge.critico[b-ae06ink6o9]      { background: #fecaca; color: #991b1b; }

.pmd-weather-grid[b-ae06ink6o9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 0.55rem;
}

@media (min-width: 1200px) {
    .pmd-weather-grid[b-ae06ink6o9] { grid-template-columns: repeat(6, 1fr); }
}

.pmd-weather-stat[b-ae06ink6o9] {
    background: #ffffff;
    border: 1px solid #e0f2fe;
    border-radius: 8px;
    padding: 0.6rem 0.55rem;
    text-align: center;
}

.pmd-weather-stat-icon[b-ae06ink6o9] {
    display: flex;
    justify-content: center;
    margin-bottom: 0.25rem;
}

.pmd-weather-stat-val[b-ae06ink6o9] {
    font-size: 0.85rem;
    font-weight: 700;
    color: #0f172a;
}

.pmd-weather-stat-lbl[b-ae06ink6o9] {
    font-size: 0.68rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-top: 0.15rem;
    font-weight: 600;
}

/* ---------- Empty ---------- */
.pmd-empty[b-ae06ink6o9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1.25rem;
    text-align: center;
    color: #64748b;
}

.pmd-empty-icon[b-ae06ink6o9] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #f0fdfa;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.85rem;
}

.pmd-empty-title[b-ae06ink6o9] {
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 0.35rem;
}

.pmd-empty-text[b-ae06ink6o9] {
    font-size: 0.85rem;
    color: #64748b;
    margin: 0;
    max-width: 420px;
}

/* ---------- Modal ---------- */
.pmd-modal-backdrop[b-ae06ink6o9] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    padding: 1rem;
    animation: pmd-fade-in-b-ae06ink6o9 0.15s ease;
}

@keyframes pmd-fade-in-b-ae06ink6o9 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.pmd-modal[b-ae06ink6o9] {
    background: #ffffff;
    border-radius: 12px;
    width: 100%;
    max-width: 780px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 45px rgba(15, 23, 42, 0.25);
    animation: pmd-scale-in-b-ae06ink6o9 0.18s ease;
}

@keyframes pmd-scale-in-b-ae06ink6o9 {
    from { transform: scale(0.95); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}

.pmd-modal-head[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 1.15rem;
    border-bottom: 1px solid #e2e8f0;
}

/* Chat floating button & panel */
[b-ae06ink6o9] .pmd-chat-fab {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 1000;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #0f766e 0%, #14b8a6 100%);
    border: none;
    color: white;
    font-size: 0.95rem;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(15,118,110,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s, box-shadow 0.2s;
}

[b-ae06ink6o9] .pmd-chat-fab:hover {
    transform: scale(1.08);
    box-shadow: 0 6px 20px rgba(15,118,110,0.5);
}

[b-ae06ink6o9] .pmd-chat-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 10px;
    background: #ef4444;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(239,68,68,0.5);
    animation: pmd-badge-pop-b-ae06ink6o9 0.3s ease;
}

@keyframes pmd-badge-pop-b-ae06ink6o9 {
    0% { transform: scale(0); }
    70% { transform: scale(1.2); }
    100% { transform: scale(1); }
}

[b-ae06ink6o9] .pmd-chat-panel {
    position: fixed;
    bottom: 4.4rem;
    right: 1.5rem;
    z-index: 999;
    width: 380px;
    height: 520px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0,0,0,0.18);
    border: 1px solid #e2e8f0;
    background: white;
    display: flex;
    flex-direction: column;
}

/* ---------- FAB y panel de Notas (apilado encima del chat) ---------- */
[b-ae06ink6o9] .pmd-notas-fab {
    position: fixed;
    bottom: 4.0rem;
    right: 1.5rem;
    z-index: 1000;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #b45309 0%, #f59e0b 100%);
    border: none;
    color: white;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(180,83,9,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s, box-shadow 0.2s;
}

[b-ae06ink6o9] .pmd-notas-fab:hover {
    transform: scale(1.08);
    box-shadow: 0 6px 20px rgba(180,83,9,0.5);
}

[b-ae06ink6o9] .pmd-notas-panel {
    position: fixed;
    bottom: 1.5rem;
    right: 5.5rem;
    z-index: 999;
    width: 560px;
    height: 640px;
    max-width: calc(100vw - 7rem);
    max-height: calc(100vh - 3rem);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0,0,0,0.18);
    border: 1px solid #e2e8f0;
    background: white;
    display: flex;
    flex-direction: column;
}
.pmd-modal-title[b-ae06ink6o9] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
}

.pmd-modal-close[b-ae06ink6o9] {
    background: transparent;
    border: none;
    color: #64748b;
    cursor: pointer;
    padding: 0.25rem;
    border-radius: 6px;
    display: inline-flex;
    transition: all 0.15s;
}

.pmd-modal-close:hover[b-ae06ink6o9] { background: #f1f5f9; color: #0f172a; }

.pmd-modal-body[b-ae06ink6o9] {
    padding: 1rem 1.15rem 1.25rem;
    overflow-y: auto;
}

/* KPI */
.pmd-kpi-row[b-ae06ink6o9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.65rem;
    margin-bottom: 0.85rem;
}

.pmd-kpi[b-ae06ink6o9] {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 0.65rem 0.8rem;
}

.pmd-kpi-lbl[b-ae06ink6o9] {
    font-size: 0.7rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.pmd-kpi-val[b-ae06ink6o9] {
    font-size: 1.05rem;
    font-weight: 700;
    margin-top: 0.2rem;
}

.pmd-bal-positive[b-ae06ink6o9] { color: #16a34a; }
.pmd-bal-negative[b-ae06ink6o9] { color: #dc2626; }

/* Divider */
.pmd-divider[b-ae06ink6o9] {
    display: flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: #334155;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.5rem 0 0.4rem;
    margin-top: 0.35rem;
    border-top: 1px solid #e2e8f0;
}

/* Tables */
.pmd-bal-table[b-ae06ink6o9] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
    margin-bottom: 0.5rem;
}

.pmd-bal-table th[b-ae06ink6o9] {
    text-align: left;
    padding: 0.5rem 0.6rem;
    background: #f1f5f9;
    color: #475569;
    font-weight: 600;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-bottom: 1px solid #e2e8f0;
}

.pmd-bal-table td[b-ae06ink6o9] {
    padding: 0.45rem 0.6rem;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
}

.pmd-bal-table tbody tr:hover[b-ae06ink6o9] { background: #f8fafc; }

.pmd-bal-table tfoot td[b-ae06ink6o9] {
    font-weight: 700;
    background: #f8fafc;
    border-top: 2px solid #e2e8f0;
    border-bottom: none;
}

.pmd-bal-amt[b-ae06ink6o9] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.ta-right[b-ae06ink6o9] { text-align: right; }

/* ---------- Chat FAB & Panel ---------- */
.pmd-chat-fab[b-ae06ink6o9] {
    position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 1000;
    width: 36px; height: 36px; border-radius: 50%;
    background: linear-gradient(135deg, #0f766e 0%, #14b8a6 100%);
    border: none; color: white; font-size: 0.95rem; cursor: pointer;
    box-shadow: 0 4px 14px rgba(15,118,110,0.4);
    display: flex; align-items: center; justify-content: center;
    transition: transform 0.2s, box-shadow 0.2s;
}
.pmd-chat-fab:hover[b-ae06ink6o9] { transform: scale(1.08); box-shadow: 0 6px 20px rgba(15,118,110,0.5); }

.pmd-chat-panel[b-ae06ink6o9] {
    position: fixed; bottom: 4.4rem; right: 1.5rem; z-index: 999;
    width: 380px; height: 520px;
    border-radius: 12px; overflow: hidden;
    box-shadow: 0 8px 30px rgba(0,0,0,0.18);
    border: 1px solid #e2e8f0;
    background: white;
    display: flex; flex-direction: column;
}

/* ---------- Botón de configuración (toolbar) ---------- */
.pmd-config-btn[b-ae06ink6o9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 6px;
    border: 1px solid rgba(255,255,255,0.25);
    background: rgba(255,255,255,0.08);
    color: #e2e8f0;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.pmd-config-btn:hover[b-ae06ink6o9] {
    background: rgba(255,255,255,0.18);
    color: #fff;
    transform: rotate(20deg);
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    .pmd-container[b-ae06ink6o9] { padding: 0.75rem; }
    .pmd-header-row[b-ae06ink6o9] { flex-direction: column; align-items: stretch; }
    .pmd-header-stats[b-ae06ink6o9] { justify-content: space-between; }
    .pmd-hstat[b-ae06ink6o9] { flex: 1; min-width: 0; }
    .pmd-title[b-ae06ink6o9] { font-size: 1.15rem; }
    .pmd-tab-card[b-ae06ink6o9] { padding: 0.85rem; }
    .pmd-weather-temp[b-ae06ink6o9] { font-size: 1.6rem; }
}
/* /Components/Pages/PM/PagEmpleadosTemporales.razor.rz.scp.css */
/* ====== Layout ====== */
.pet-layout[b-oc87iof49p] {
    display: flex;
    height: calc(100vh - 56px);
    overflow: hidden;
    font-size: 12px;
    font-family: inherit;
}

/* ====== Sidebar ====== */
.pet-sidebar[b-oc87iof49p] {
    width: 220px;
    min-width: 200px;
    background: #1a2a3a;
    border-right: 1px solid #1565c0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.pet-sidebar-header[b-oc87iof49p] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 0.75rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #90aac8;
    border-bottom: 1px solid #1e3a5a;
}

.pet-sidebar-loading[b-oc87iof49p],
.pet-sidebar-empty[b-oc87iof49p] {
    padding: 1rem 0.75rem;
    color: #607d8b;
    font-size: 0.75rem;
}

.pet-proj-list[b-oc87iof49p] {
    list-style: none;
    margin: 0;
    padding: 0.3rem 0;
}

.pet-proj-item[b-oc87iof49p] {
    padding: 0.45rem 0.75rem;
    cursor: pointer;
    border-left: 3px solid transparent;
    position: relative;
    transition: background 0.12s;
}

.pet-proj-item:hover[b-oc87iof49p] {
    background: #1e3a5a;
}

.pet-proj-item.active[b-oc87iof49p] {
    background: #1e3a5a;
    border-left-color: #1565c0;
}

.pet-proj-name[b-oc87iof49p] {
    font-weight: 500;
    color: #d0e4f7;
    font-size: 0.78rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pet-proj-sub[b-oc87iof49p] {
    color: #607d8b;
    font-size: 0.69rem;
    margin-top: 1px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pet-proj-badge[b-oc87iof49p] {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    background: #1565c0;
    color: #fff;
    font-size: 0.62rem;
    font-weight: 700;
    border-radius: 10px;
    padding: 0 5px;
    min-width: 18px;
    text-align: center;
}

/* ====== Main ====== */
.pet-main[b-oc87iof49p] {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f5f7fa;
}

/* ====== Toolbar ====== */
.pet-toolbar[b-oc87iof49p] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #1a2a3a;
    border-bottom: 1px solid #1565c0;
    padding: 0 0.85rem;
    height: 36px;
    flex-shrink: 0;
}

.pet-toolbar-left[b-oc87iof49p] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: #90aac8;
}

.pet-toolbar-title[b-oc87iof49p] {
    font-weight: 600;
    font-size: 0.78rem;
    color: #d0e4f7;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.pet-toolbar-sep[b-oc87iof49p] {
    color: #1565c0;
    font-size: 0.85rem;
}

.pet-toolbar-proj[b-oc87iof49p] {
    font-size: 0.78rem;
    color: #90aac8;
}

.pet-toolbar-right[b-oc87iof49p] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    color: #90aac8;
}

.pet-stat-item[b-oc87iof49p] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.pet-stat-dot[b-oc87iof49p] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
}

.pet-stat-dot.green[b-oc87iof49p] { background: #2e7d32; }
.pet-stat-dot.orange[b-oc87iof49p] { background: #e65100; }

.pet-stat-sep[b-oc87iof49p] {
    color: #1e3a5a;
}

.pet-stat-progress[b-oc87iof49p] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    color: #90aac8;
}

.pet-stat-track[b-oc87iof49p] {
    width: 52px;
    height: 5px;
    background: #1e3a5a;
    border-radius: 3px;
    overflow: hidden;
}

.pet-stat-fill[b-oc87iof49p] {
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s ease;
}

.pet-stat-fill.full[b-oc87iof49p] { background: #2e7d32; }
.pet-stat-fill.mid[b-oc87iof49p]  { background: #b45309; }
.pet-stat-fill.low[b-oc87iof49p]  { background: #c62828; }

/* ====== Empty / Loading ====== */
.pet-empty[b-oc87iof49p] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    color: #9ca3af;
    font-size: 0.8rem;
}

.pet-empty-icon[b-oc87iof49p] {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: #9ca3af;
}

/* ====== Spinner ====== */
.pet-spinner[b-oc87iof49p] {
    width: 18px;
    height: 18px;
    border: 2px solid #e5e7eb;
    border-top-color: #1565c0;
    border-radius: 50%;
    animation: pet-spin-b-oc87iof49p 0.6s linear infinite;
}

@keyframes pet-spin-b-oc87iof49p { to { transform: rotate(360deg); } }

/* ====== Table ====== */
.pet-table-wrap[b-oc87iof49p] {
    flex: 1;
    overflow: auto;
    padding: 0.6rem 0.75rem;
}

.pet-table[b-oc87iof49p] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.pet-table thead tr[b-oc87iof49p] {
    background: #1e3a5a;
}

.pet-table thead th[b-oc87iof49p] {
    padding: 0.4rem 0.6rem;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #90aac8;
    border-right: 1px solid #1a2a3a;
    white-space: nowrap;
}

.pet-table thead th:last-child[b-oc87iof49p] { border-right: none; }

.pet-table tbody tr[b-oc87iof49p] {
    border-bottom: 1px solid #f1f3f5;
    transition: background 0.1s;
}

.pet-table tbody tr:hover[b-oc87iof49p] { background: #f8fafc; }
.pet-table tbody tr:last-child[b-oc87iof49p] { border-bottom: none; }

.pet-table td[b-oc87iof49p] {
    padding: 0.38rem 0.6rem;
    vertical-align: middle;
    color: #1f2937;
    border-right: 1px solid #f1f3f5;
}

.pet-table td:last-child[b-oc87iof49p] { border-right: none; }

.pet-emp-name[b-oc87iof49p] { font-weight: 500; color: #111827; }
.pet-emp-sub[b-oc87iof49p] { font-size: 0.68rem; color: #6b7280; margin-top: 1px; }

.nowrap[b-oc87iof49p] { white-space: nowrap; }
.mono[b-oc87iof49p] { font-family: ui-monospace, monospace; font-size: 0.75rem; }
.text-right[b-oc87iof49p] { text-align: right; }
.muted[b-oc87iof49p] { color: #9ca3af; }

/* Badges de estado */
.pet-badge[b-oc87iof49p] {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.1rem 0.45rem;
    border-radius: 4px;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.pet-badge-green[b-oc87iof49p] { background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }
.pet-badge-yellow[b-oc87iof49p] { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
.pet-badge-gray[b-oc87iof49p] { background: #f3f4f6; color: #6b7280; border: 1px solid #e5e7eb; }

/* Días sin pago */
.pet-dias[b-oc87iof49p] {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
}

.dias-ok[b-oc87iof49p] { background: #d1fae5; color: #065f46; }
.dias-warn[b-oc87iof49p] { background: #fef3c7; color: #92400e; }
.dias-alerta[b-oc87iof49p] { background: #fee2e2; color: #991b1b; }

/* ====== Checklist de documentos ====== */
.pet-checklist[b-oc87iof49p] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.pet-checklist-bar[b-oc87iof49p] {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    max-width: 130px;
}

.pet-chk-dot[b-oc87iof49p] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    cursor: default;
    flex-shrink: 0;
}

.pet-chk-dot.ok[b-oc87iof49p]   { background: #2e7d32; }
.pet-chk-dot.fail[b-oc87iof49p] { background: #c62828; }
.pet-chk-dot.pending[b-oc87iof49p] { background: #d1d5db; border: 1px solid #9ca3af; }

.pet-chk-count[b-oc87iof49p] {
    font-size: 0.68rem;
    font-weight: 600;
    white-space: nowrap;
}

.pet-chk-count.all-ok[b-oc87iof49p]   { color: #2e7d32; }
.pet-chk-count.none-ok[b-oc87iof49p]  { color: #c62828; }
.pet-chk-count.partial[b-oc87iof49p]  { color: #b45309; }
/* /Components/Pages/SolicitudCompra/CompContratosEmpleado.razor.rz.scp.css */
.ce-container[b-50tskrthkp] { padding: 0.75rem; }

.ce-header[b-50tskrthkp] {
    display: flex; justify-content: space-between; align-items: center;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 0.6rem 1rem; margin-bottom: 0.75rem;
}
.ce-header-left[b-50tskrthkp] { display: flex; align-items: center; gap: 0.5rem; }
.ce-header-title[b-50tskrthkp] { font-weight: 700; font-size: 0.95rem; color: #111827; }
.ce-badge[b-50tskrthkp] {
    background: #f3f4f6; color: #4b5563; border: 1px solid #e5e7eb;
    padding: 0.15rem 0.5rem; border-radius: 12px; font-size: 0.68rem; font-weight: 600;
}
.ce-btn-new[b-50tskrthkp] {
    background: #2563eb; border: none; color: white;
    padding: 0.35rem 0.85rem; border-radius: 8px; font-size: 0.78rem;
    font-weight: 600; cursor: pointer; transition: all 0.15s ease;
    display: flex; align-items: center; gap: 0.3rem;
}
.ce-btn-new:hover[b-50tskrthkp] { background: #1d4ed8; transform: translateY(-1px); box-shadow: 0 2px 8px rgba(37,99,235,0.3); }

.ce-list[b-50tskrthkp] {
    max-height: 70vh; overflow-y: auto; display: flex; flex-direction: column; gap: 0.5rem;
    scrollbar-width: thin; scrollbar-color: #d1d5db transparent;
}
.ce-list[b-50tskrthkp]::-webkit-scrollbar { width: 5px; }
.ce-list[b-50tskrthkp]::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }

.ce-card[b-50tskrthkp] {
    background: white; border: 1px solid #e5e7eb;
    transition: box-shadow 0.2s ease;
}
.ce-card:hover[b-50tskrthkp] { box-shadow: 0 2px 12px rgba(0,0,0,0.06); }

.ce-card-header[b-50tskrthkp] {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.55rem 0.85rem; cursor: pointer; user-select: none;
    background: #fafbfc; transition: background 0.15s;
}
.ce-card-header:hover[b-50tskrthkp] { background: #f1f5f9; }
.ce-card-header-left[b-50tskrthkp] { display: flex; align-items: center; gap: 0.65rem; min-width: 0; flex: 1; }
.ce-card-toggle[b-50tskrthkp] {
    width: 18px; height: 18px; display: flex; align-items: center; justify-content: center;
    border-radius: 4px; background: #ecfdf5; color: #6b7280; font-size: 0.55rem;
    flex-shrink: 0; transition: transform 0.25s ease, color 0.15s;
}
.ce-card-toggle.open[b-50tskrthkp] { transform: rotate(90deg); color: #10b981; }
.ce-card-info[b-50tskrthkp] { min-width: 0; flex: 1; display: flex; align-items: center; gap: 0.6rem; }
.ce-card-emp[b-50tskrthkp] { font-weight: 700; font-size: 0.82rem; color: #1e293b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink: 0; max-width: 40%; }
.ce-card-meta[b-50tskrthkp] {
    font-size: 0.68rem; color: #64748b; display: flex; gap: 0.6rem; flex-wrap: nowrap; align-items: center; margin-top: 0; min-width: 0; overflow: hidden;
}
.ce-card-meta-item[b-50tskrthkp] { display: flex; align-items: center; gap: 0.2rem; }
.ce-card-right[b-50tskrthkp] { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.ce-card-count[b-50tskrthkp] {
    font-weight: 700; font-size: 0.78rem; color: #1e293b; white-space: nowrap;
}
.ce-card-actions[b-50tskrthkp] { display: flex; gap: 0.3rem; }

.ce-cadencia[b-50tskrthkp] {
    display: inline-block; font-size: 0.58rem; font-weight: 700;
    padding: 1px 7px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.04em;
    background: #eff6ff; color: #2563eb; border: 1px solid #bfdbfe;
}

.ce-card-body[b-50tskrthkp] {
    max-height: 0; overflow: hidden; transition: max-height 0.3s ease;
}
.ce-card-body.open[b-50tskrthkp] { max-height: 2000px; }

.ce-btn-sm[b-50tskrthkp] {
    background: white; border: 1px solid #e5e7eb; color: #374151;
    padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.68rem;
    font-weight: 600; cursor: pointer; transition: all 0.15s;
    display: inline-flex; align-items: center; gap: 0.2rem;
}
.ce-btn-sm:hover[b-50tskrthkp] { background: #f9fafb; border-color: #9ca3af; }
.ce-btn-sm.danger[b-50tskrthkp] { color: #ef4444; border-color: #fecaca; }
.ce-btn-sm.danger:hover[b-50tskrthkp] { background: #fef2f2; border-color: #f87171; }

/* Menú flotante de acciones */
.ce-actions-backdrop[b-50tskrthkp] { position: fixed; inset: 0; z-index: 40; background: transparent; }
.ce-actions-menu[b-50tskrthkp] { position: relative; display: inline-block; }
.ce-actions-trigger[b-50tskrthkp] { padding: 0.2rem 0.45rem; }
.ce-actions-menu.open .ce-actions-trigger[b-50tskrthkp] { background: #f1f5f9; border-color: #9ca3af; }
.ce-actions-dropdown[b-50tskrthkp] {
    position: fixed; z-index: 60;
    min-width: 200px; background: white; border: 1px solid #e5e7eb;
    border-radius: 8px; box-shadow: 0 8px 24px rgba(15, 23, 42, 0.14);
    padding: 0.3rem; display: flex; flex-direction: column; gap: 1px;
}
.ce-actions-item[b-50tskrthkp] {
    display: flex; align-items: center; gap: 0.5rem; width: 100%;
    background: none; border: none; cursor: pointer; text-align: left;
    padding: 0.4rem 0.6rem; border-radius: 6px; font-size: 0.78rem;
    font-weight: 500; color: #334155; transition: background 0.12s;
}
.ce-actions-item:hover[b-50tskrthkp] { background: #f1f5f9; }
.ce-actions-item i[b-50tskrthkp] { font-size: 0.85rem; color: #64748b; width: 1rem; text-align: center; }
.ce-actions-item.danger[b-50tskrthkp] { color: #ef4444; }
.ce-actions-item.danger i[b-50tskrthkp] { color: #ef4444; }
.ce-actions-item.danger:hover[b-50tskrthkp] { background: #fef2f2; }

.ce-detail-table[b-50tskrthkp] {
    width: 100%; border-collapse: collapse; font-size: 0.75rem;
}
.ce-detail-table thead th[b-50tskrthkp] {
    padding: 0.35rem 0.6rem; font-weight: 700; font-size: 0.6rem;
    text-transform: uppercase; letter-spacing: 0.04em; color: #94a3b8;
    border-bottom: 1px solid #e2e8f0; text-align: left; background: #f8fafc;
}
.ce-detail-table tbody td[b-50tskrthkp] {
    padding: 0.3rem 0.6rem; border-bottom: 1px solid #f1f5f9; color: #374151;
}
.ce-detail-table tbody tr:hover[b-50tskrthkp] { background: #f9fafb; }

.ce-empty[b-50tskrthkp] {
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: 0.75rem; padding: 3rem 2rem;
    color: #9ca3af; font-size: 0.9rem; text-align: center;
}
.ce-empty-icon[b-50tskrthkp] {
    width: 56px; height: 56px; border-radius: 50%; background: #f3f4f6;
    color: #9ca3af; display: flex; align-items: center; justify-content: center; font-size: 1.3rem;
}
.ce-loading[b-50tskrthkp] {
    display: flex; align-items: center; justify-content: center;
    gap: 0.75rem; padding: 2rem; color: #6b7280; font-size: 0.85rem;
}
.ce-loading-spinner[b-50tskrthkp] {
    width: 20px; height: 20px; border: 2px solid #e5e7eb;
    border-top-color: #374151; border-radius: 50%; animation: ce-spin-b-50tskrthkp 0.6s linear infinite;
}
@keyframes ce-spin-b-50tskrthkp { to { transform: rotate(360deg); } }

.ce-form-section[b-50tskrthkp] { margin-bottom: 1rem; }
.ce-form-label[b-50tskrthkp] {
    font-size: 0.72rem; font-weight: 700; color: #4b5563;
    margin-bottom: 0.35rem; display: block;
    text-transform: uppercase; letter-spacing: 0.04em;
}
.ce-form-row[b-50tskrthkp] { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.ce-form-row > div[b-50tskrthkp] { flex: 1; min-width: 180px; }

.ce-det-add-row[b-50tskrthkp] {
    display: flex; gap: 0.5rem; align-items: flex-end;
    background: #f8fafc; border-radius: 8px; padding: 0.65rem;
    border: 1px solid #e2e8f0; margin-bottom: 0.65rem;
}
.ce-det-add-row .field[b-50tskrthkp] { flex: 1; min-width: 0; }

.ce-btn-add[b-50tskrthkp] {
    background: #3b82f6; color: white; border: none;
    padding: 0.4rem 0.75rem; border-radius: 6px; font-size: 0.75rem;
    font-weight: 600; cursor: pointer; white-space: nowrap;
}
.ce-btn-add:hover[b-50tskrthkp] { background: #2563eb; }
.ce-btn-add:disabled[b-50tskrthkp] { opacity: 0.4; cursor: not-allowed; background: #9ca3af; }

.ce-btn-remove-line[b-50tskrthkp] {
    background: white; border: 1px solid #d1d5db; color: #ef4444;
    padding: 0.2rem 0.5rem; border-radius: 4px; font-size: 0.7rem; cursor: pointer;
}
.ce-btn-remove-line:hover[b-50tskrthkp] { background: #fee2e2; border-color: #fca5a5; }

.ce-dialog-actions[b-50tskrthkp] {
    display: flex; justify-content: flex-end; gap: 0.75rem;
    margin-top: 1.25rem; padding-top: 0.85rem; border-top: 1px solid #e2e8f0;
}

.ce-error[b-50tskrthkp] {
    background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px;
    padding: 0.5rem 0.75rem; color: #b91c1c; font-size: 0.8rem; margin-top: 0.65rem;
}

.ce-det-list-wrapper[b-50tskrthkp] {
    border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden;
    max-height: 280px; overflow-y: auto;
}
.ce-det-list-empty[b-50tskrthkp] {
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; padding: 2rem 1rem; color: #9ca3af; font-size: 0.8rem; text-align: center; gap: 0.35rem;
}

.ce-btn-pdf[b-50tskrthkp] {
    background: white; border: 1px solid #e5e7eb; color: #2563eb;
    padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.68rem;
    font-weight: 600; cursor: pointer; transition: all 0.15s;
    display: inline-flex; align-items: center; gap: 0.2rem;
}
.ce-btn-pdf:hover[b-50tskrthkp] { background: #eff6ff; border-color: #bfdbfe; }
.ce-btn-pdf.success[b-50tskrthkp] { color: #10b981; border-color: #a7f3d0; }
.ce-btn-pdf.success:hover[b-50tskrthkp] { background: #ecfdf5; border-color: #6ee7b7; }
.ce-badge-green[b-50tskrthkp] {
    background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0;
    padding: 0.15rem 0.5rem; border-radius: 12px; font-size: 0.68rem; font-weight: 600;
}
.ce-badge-cancelado[b-50tskrthkp] {
    background: #fee2e2; color: #991b1b; border: 1px solid #fecaca;
    padding: 0.15rem 0.5rem; border-radius: 12px; font-size: 0.68rem; font-weight: 600;
}
.ce-badge-archivado[b-50tskrthkp] {
    background: #e2e8f0; color: #475569; border: 1px solid #cbd5e1;
    padding: 0.15rem 0.5rem; border-radius: 12px; font-size: 0.68rem; font-weight: 600;
}
.ce-upload-signed[b-50tskrthkp] {
    position: relative; display: inline-flex;
}
.ce-upload-signed[b-50tskrthkp]  input[type="file"] {
    position: absolute; inset: 0; opacity: 0; cursor: pointer;
}

.ce-tabs[b-50tskrthkp] {
    display: flex; border-bottom: 2px solid #e5e7eb; margin-bottom: 0.65rem; gap: 0;
}
.ce-tab[b-50tskrthkp] {
    padding: 0.45rem 1rem; font-size: 0.78rem; font-weight: 600;
    color: #6b7280; background: none; border: none; cursor: pointer;
    border-bottom: 2px solid transparent; margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
    display: flex; align-items: center; gap: 0.35rem;
}
.ce-tab:hover[b-50tskrthkp] { color: #374151; }
.ce-tab.active[b-50tskrthkp] { color: #2563eb; border-bottom-color: #2563eb; }
.ce-tab-badge[b-50tskrthkp] {
    background: #f3f4f6; color: #4b5563; border: 1px solid #e5e7eb;
    padding: 0.05rem 0.4rem; border-radius: 10px; font-size: 0.62rem; font-weight: 700;
}
.ce-tab.active .ce-tab-badge[b-50tskrthkp] { background: #eff6ff; color: #2563eb; border-color: #bfdbfe; }
.ce-tab-panel[b-50tskrthkp] { display: none; }
.ce-tab-panel.active[b-50tskrthkp] { display: block; }
.ce-dialog-body[b-50tskrthkp] {
    display: flex; flex-direction: column; height: 100%; overflow: hidden;
}
.ce-dialog-scroll[b-50tskrthkp] {
    flex: 1; overflow-y: auto; min-height: 0;
    scrollbar-width: thin; scrollbar-color: #d1d5db transparent;
}
.ce-dialog-scroll[b-50tskrthkp]::-webkit-scrollbar { width: 5px; }
.ce-dialog-scroll[b-50tskrthkp]::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }
.ce-dialog-footer[b-50tskrthkp] {
    flex-shrink: 0;
}

.ce-info-grid[b-50tskrthkp] {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem 1.25rem;
}
.ce-info-item[b-50tskrthkp] { display: flex; flex-direction: column; gap: 0.15rem; }
.ce-info-label[b-50tskrthkp] {
    font-size: 0.62rem; font-weight: 700; color: #94a3b8;
    text-transform: uppercase; letter-spacing: 0.04em;
}
.ce-info-value[b-50tskrthkp] {
    font-size: 0.85rem; font-weight: 600; color: #1e293b;
}
.ce-info-value.muted[b-50tskrthkp] { color: #94a3b8; font-weight: 400; font-style: italic; }
.ce-info-section-title[b-50tskrthkp] {
    font-size: 0.72rem; font-weight: 700; color: #374151;
    text-transform: uppercase; letter-spacing: 0.04em;
    margin-top: 1rem; margin-bottom: 0.5rem; padding-bottom: 0.3rem;
    border-bottom: 1px solid #e5e7eb;
}
.ce-estado-badge[b-50tskrthkp] {
    display: inline-block; font-size: 0.62rem; font-weight: 700;
    padding: 2px 8px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.04em;
}
.ce-estado-badge.pendiente[b-50tskrthkp] { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
.ce-estado-badge.pagado[b-50tskrthkp] { background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }
.ce-estado-badge.anulado[b-50tskrthkp] { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }

/* View toggle */
.ce-view-toggle[b-50tskrthkp] {
    display: flex; gap: 0.2rem; background: #f1f5f9; border-radius: 8px; padding: 0.15rem;
}
.ce-view-btn[b-50tskrthkp] {
    background: transparent; border: none; padding: 0.3rem 0.7rem; border-radius: 6px;
    font-size: 0.72rem; font-weight: 600; color: #64748b; cursor: pointer;
    transition: all 0.15s; display: flex; align-items: center; gap: 0.3rem; white-space: nowrap;
}
.ce-view-btn:hover[b-50tskrthkp] { color: #1e293b; background: rgba(255,255,255,0.5); }
.ce-view-btn.active[b-50tskrthkp] { background: white; color: #1e293b; box-shadow: 0 1px 4px rgba(0,0,0,0.08); }

/* Modern Budget View */
.ce-budget-dash[b-50tskrthkp] {
    display: grid; gap: 1rem;
}
.ce-stat-grid[b-50tskrthkp] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem;
}
.ce-stat-card[b-50tskrthkp] {
    background: white; padding: 0.75rem; border-radius: 10px; border: 1px solid #e2e8f0;
    display: flex; flex-direction: column; justify-content: space-between; height: 85px;
    position: relative; overflow: hidden; transition: transform 0.2s, box-shadow 0.2s;
}
.ce-stat-card:hover[b-50tskrthkp] { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.ce-stat-label[b-50tskrthkp] { font-size: 0.65rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; }
.ce-stat-value[b-50tskrthkp] { font-size: 1.35rem; font-weight: 800; color: #0f172a; letter-spacing: -0.03em; margin-top: 0.15rem; }
.ce-stat-sub[b-50tskrthkp] { font-size: 0.7rem; color: #94a3b8; font-weight: 500; margin-top: auto; }
.ce-stat-icon[b-50tskrthkp] {
    position: absolute; right: -8px; bottom: -12px; font-size: 3.8rem; opacity: 0.05;
    transform: rotate(-15deg); pointer-events: none; color: currentColor;
}

.ce-budget-table-container[b-50tskrthkp] {
    background: white; border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.02);
}
.ce-budget-table[b-50tskrthkp] { width: 100%; border-collapse: separate; border-spacing: 0; }
.ce-budget-table th[b-50tskrthkp] {
    background: #f8fafc; padding: 0.65rem 0.85rem; text-align: left; font-size: 0.65rem; font-weight: 700;
    text-transform: uppercase; color: #64748b; border-bottom: 1px solid #e2e8f0; letter-spacing: 0.04em;
}
.ce-budget-table td[b-50tskrthkp] {
    padding: 0.45rem 0.85rem; border-bottom: 1px solid #f1f5f9; font-size: 0.82rem; color: #334155; vertical-align: middle;
}
.ce-budget-table tr:last-child td[b-50tskrthkp] { border-bottom: none; }
.ce-budget-table tr:hover[b-50tskrthkp] { background: #f8fafc; }

.ce-budget-item-name[b-50tskrthkp] { font-weight: 600; color: #0f172a; display: block; }
.ce-budget-item-sub[b-50tskrthkp] { font-size: 0.7rem; color: #94a3b8; display: block; margin-top: 2px; }

/* Celda inline: nombre + subtítulo en una sola línea, truncado con … si no cabe */
.ce-cell-inline[b-50tskrthkp] { display: flex; align-items: baseline; gap: 0.4rem; min-width: 0; }
.ce-cell-inline .ce-budget-item-name[b-50tskrthkp] {
    display: inline; flex-shrink: 1; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ce-cell-inline .ce-budget-item-sub[b-50tskrthkp] {
    display: inline; margin-top: 0; flex-shrink: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ce-cell-inline .ce-budget-item-sub[b-50tskrthkp]::before {
    content: "·"; margin-right: 0.4rem; color: #cbd5e1;
}

.ce-clickable-count[b-50tskrthkp] {
    cursor: pointer; text-decoration: underline; text-decoration-style: dotted;
    color: #64748b; font-size: 0.7rem; margin-left: 0.35rem; font-weight: 400;
    transition: color 0.2s;
}

/* Progreso compacto: barra + % + monto en una sola línea */
.ce-prog-compact[b-50tskrthkp] { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.ce-prog-bar-bg[b-50tskrthkp] {
    flex: 1; min-width: 40px; height: 6px; background: #f1f5f9;
    border-radius: 99px; overflow: hidden;
}
.ce-prog-bar-fill[b-50tskrthkp] { height: 100%; border-radius: 99px; transition: width 0.3s ease; }
.ce-prog-text[b-50tskrthkp] { font-size: 0.72rem; font-weight: 700; white-space: nowrap; flex-shrink: 0; }

/* Asistencia (personal ejecutor OT) */
.ce-asis-table th.ce-asis-day[b-50tskrthkp] {
    text-align: center; padding: 0.5rem 0.4rem; min-width: 54px;
}
.ce-asis-table th.ce-asis-day.weekend[b-50tskrthkp] { background: #f1f5f9; }
.ce-asis-day-num[b-50tskrthkp] { display: block; font-size: 0.68rem; color: #334155; }
.ce-asis-day-name[b-50tskrthkp] { display: block; font-size: 0.6rem; font-weight: 600; color: #94a3b8; text-transform: capitalize; }
.ce-asis-cell[b-50tskrthkp] {
    text-align: center; font-weight: 600; font-size: 0.78rem; padding: 0.5rem 0.4rem;
}
.ce-asis-cell.full[b-50tskrthkp] { background: #f0fdf4; color: #059669; }
.ce-asis-cell.partial[b-50tskrthkp] { color: #d97706; }
.ce-asis-cell.empty[b-50tskrthkp] { color: #cbd5e1; }
.ce-asis-cell.weekend:not(.full)[b-50tskrthkp] { background: #f8fafc; }
.ce-asis-total-col[b-50tskrthkp] {
    text-align: center; border-left: 2px solid #e2e8f0; background: #f8fafc;
}
.ce-asis-table tfoot td[b-50tskrthkp] {
    border-top: 2px solid #e2e8f0; background: #f8fafc; padding: 0.5rem 0.4rem;
}
.ce-clickable-count:hover[b-50tskrthkp] { color: #2563eb; }

.ce-upload-area[b-50tskrthkp] {
    position: relative; border: 2px dashed #d1d5db; border-radius: 6px;
    padding: 0.5rem; text-align: center; color: #9ca3af; font-size: 0.72rem;
    cursor: pointer; transition: all 0.15s; margin-top: 0.35rem;
}
.ce-upload-area:hover[b-50tskrthkp] { border-color: #3b82f6; color: #3b82f6; }

.ce-file-list[b-50tskrthkp] { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.35rem; }
.ce-file-item[b-50tskrthkp] {
    display: flex; align-items: center; gap: 0.3rem; background: white;
    border: 1px solid #e5e7eb; border-radius: 4px; padding: 0.2rem 0.5rem;
    font-size: 0.68rem; color: #374151;
}
.ce-file-remove[b-50tskrthkp] {
    background: none; border: none; color: #ef4444; cursor: pointer;
    font-size: 0.7rem; padding: 0; line-height: 1;
}

/* Pago — tabla de personal contratado */
.ce-pago-row[b-50tskrthkp] { cursor: pointer; transition: background 0.15s; }
.ce-pago-row:hover[b-50tskrthkp] { background: #eff6ff !important; }
.ce-pago-count[b-50tskrthkp] {
    display: inline-flex; align-items: center; gap: 0.3rem;
    font-size: 0.72rem; font-weight: 600; color: #2563eb;
}
.ce-pago-count i[b-50tskrthkp] { font-size: 0.65rem; transition: transform 0.15s; }
.ce-pago-row:hover .ce-pago-count i[b-50tskrthkp] { transform: translateX(2px); }

/* utilidades tabla contratos */
.ce-budget-table td.nowrap[b-50tskrthkp], .ce-budget-table .nowrap[b-50tskrthkp] { white-space: nowrap; }

/* Botón documentos (columna Documentos en tab Contratos) */
.ce-doc-btn[b-50tskrthkp] {
    display: inline-flex; align-items: center; gap: 0.25rem;
    background: #fff; border: 1px solid #d1d5db; border-radius: 6px;
    padding: 0.2rem 0.45rem; cursor: pointer; color: #475569; font-size: 0.8rem;
    transition: background 0.15s, border-color 0.15s;
}
.ce-doc-btn:hover[b-50tskrthkp] { background: #eff6ff; border-color: #bfdbfe; color: #2563eb; }
.ce-doc-count[b-50tskrthkp] {
    font-size: 0.6rem; font-weight: 700; background: #2563eb; color: #fff;
    border-radius: 8px; padding: 0 5px; line-height: 1.4;
}
.ce-doc-count.empty[b-50tskrthkp] { background: #e2e8f0; color: #94a3b8; }

/* Indicador de requisitos documentales (igual que PagEmpleadosTemporales) */
.ce-checklist[b-50tskrthkp] { display: flex; align-items: center; gap: 0.4rem; }
.ce-checklist.clickable[b-50tskrthkp] {
    cursor: pointer; border-radius: 6px; padding: 0.25rem 0.4rem; margin: -0.25rem -0.4rem;
    transition: background 0.15s;
}
.ce-checklist.clickable:hover[b-50tskrthkp] { background: #f0fdfa; }
.ce-checklist-bar[b-50tskrthkp] { display: flex; flex-wrap: wrap; gap: 3px; max-width: 130px; }
.ce-chk-dot[b-50tskrthkp] {
    display: inline-block; width: 10px; height: 10px; border-radius: 2px;
    cursor: default; flex-shrink: 0;
}
.ce-chk-dot.ok[b-50tskrthkp]      { background: #2e7d32; }
.ce-chk-dot.fail[b-50tskrthkp]    { background: #c62828; }
.ce-chk-dot.pending[b-50tskrthkp] { background: #d1d5db; border: 1px solid #9ca3af; }
.ce-chk-count[b-50tskrthkp] { font-size: 0.68rem; font-weight: 600; white-space: nowrap; }
.ce-chk-count.all-ok[b-50tskrthkp]  { color: #2e7d32; }
.ce-chk-count.none-ok[b-50tskrthkp] { color: #c62828; }
.ce-chk-count.partial[b-50tskrthkp] { color: #b45309; }

/* Documentos adjuntos dentro del diálogo de checklist */
.ce-chk-docs[b-50tskrthkp] {
    margin: 0.4rem 0 0 1.5rem; display: flex; flex-direction: column; gap: 0.25rem;
}
.ce-chk-doc-row[b-50tskrthkp] {
    display: flex; align-items: center; gap: 0.4rem;
    background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px;
    padding: 0.2rem 0.45rem; font-size: 0.72rem; color: #334155;
}
.ce-chk-doc-row > i[b-50tskrthkp] { color: #0f766e; flex-shrink: 0; }
.ce-chk-doc-name[b-50tskrthkp] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-chk-doc-btn[b-50tskrthkp] {
    background: none; border: none; cursor: pointer; color: #64748b;
    padding: 0.1rem 0.25rem; border-radius: 4px; font-size: 0.72rem; transition: background 0.15s, color 0.15s;
}
.ce-chk-doc-btn:hover[b-50tskrthkp] { background: #e2e8f0; color: #2563eb; }
.ce-chk-doc-btn.danger:hover[b-50tskrthkp] { background: #fef2f2; color: #ef4444; }
.ce-chk-doc-upload[b-50tskrthkp] {
    display: inline-flex; align-items: center; gap: 0.3rem; align-self: flex-start;
    cursor: pointer; font-size: 0.7rem; font-weight: 600; color: #0f766e;
    border: 1px dashed #99f6e4; border-radius: 6px; padding: 0.25rem 0.5rem;
    background: #f0fdfa; transition: background 0.15s, border-color 0.15s;
}
.ce-chk-doc-upload:hover[b-50tskrthkp] { background: #ccfbf1; border-color: #5eead4; }
.ce-chk-doc-upload.loading[b-50tskrthkp] { color: #94a3b8; border-color: #e2e8f0; background: #f8fafc; cursor: default; }

/* Pago — drawer de historial */
.ce-pago-drawer-overlay[b-50tskrthkp] {
    position: fixed; inset: 0; background: rgba(15, 23, 42, 0.35);
    opacity: 0; visibility: hidden; transition: opacity 0.25s, visibility 0.25s;
    z-index: 1200;
}
.ce-pago-drawer-overlay.visible[b-50tskrthkp] { opacity: 1; visibility: visible; }
.ce-pago-drawer[b-50tskrthkp] {
    position: fixed; top: 0; right: 0; height: 100%; width: 440px; max-width: 92vw;
    background: #f8fafc; box-shadow: -8px 0 28px rgba(0, 0, 0, 0.12);
    transform: translateX(100%); transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1201; display: flex; flex-direction: column;
}
.ce-pago-drawer.visible[b-50tskrthkp] { transform: translateX(0); }
.ce-pago-drawer-header[b-50tskrthkp] {
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: 1.1rem 1.25rem; background: white; border-bottom: 1px solid #e2e8f0; flex-shrink: 0;
}
.ce-pago-drawer-title[b-50tskrthkp] { font-size: 1rem; font-weight: 700; color: #0f172a; }
.ce-pago-drawer-sub[b-50tskrthkp] { font-size: 0.74rem; color: #64748b; margin-top: 0.15rem; }
.ce-pago-drawer-close[b-50tskrthkp] {
    background: none; border: none; color: #94a3b8; cursor: pointer; font-size: 1rem;
    padding: 0.25rem; line-height: 1; border-radius: 6px; transition: all 0.15s;
}
.ce-pago-drawer-close:hover[b-50tskrthkp] { background: #f1f5f9; color: #1e293b; }
.ce-pago-drawer-stats[b-50tskrthkp] {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem;
    padding: 0.85rem 1.25rem; background: white; border-bottom: 1px solid #e2e8f0; flex-shrink: 0;
}
.ce-pago-drawer-stat[b-50tskrthkp] { display: flex; flex-direction: column; gap: 0.15rem; }
.ce-pago-drawer-stat-label[b-50tskrthkp] {
    font-size: 0.62rem; font-weight: 700; color: #94a3b8;
    text-transform: uppercase; letter-spacing: 0.04em;
}
.ce-pago-drawer-stat-value[b-50tskrthkp] { font-size: 1rem; font-weight: 800; color: #0f172a; }
.ce-pago-drawer-body[b-50tskrthkp] {
    flex: 1; overflow-y: auto; padding: 1rem 1.25rem;
    display: flex; flex-direction: column; gap: 0.6rem;
}
.ce-pago-item[b-50tskrthkp] {
    background: white; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 0.75rem 0.85rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
    border-left: 3px solid #10b981;
}
.ce-pago-item.pendiente[b-50tskrthkp] { border-left-color: #f59e0b; background: #fffbeb; }
.ce-pago-item.pendiente .ce-pago-item-monto[b-50tskrthkp] { color: #d97706; }
.ce-pago-item-top[b-50tskrthkp] { display: flex; align-items: center; justify-content: space-between; }
.ce-pago-item-fecha[b-50tskrthkp] {
    font-size: 0.78rem; font-weight: 700; color: #1e293b;
    display: inline-flex; align-items: center; gap: 0.35rem;
}
.ce-pago-item-monto[b-50tskrthkp] { font-size: 1.15rem; font-weight: 800; color: #059669; margin: 0.35rem 0 0.4rem; }
.ce-pago-item-meta[b-50tskrthkp] {
    display: flex; flex-wrap: wrap; gap: 0.4rem 0.85rem;
    font-size: 0.7rem; color: #64748b;
}
.ce-pago-item-meta span[b-50tskrthkp] { display: inline-flex; align-items: center; gap: 0.3rem; }
.ce-pago-item-comentario[b-50tskrthkp] {
    margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px dashed #e2e8f0;
    font-size: 0.72rem; color: #475569; font-style: italic;
}
/* /Components/Pages/SolicitudCompra/CompContratosProveedor.razor.rz.scp.css */
.ct-container[b-uuw70k6afb] { padding: 0.75rem; }

.ct-header[b-uuw70k6afb] {
    display: flex; justify-content: space-between; align-items: center;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    padding: 0.6rem 1rem; margin-bottom: 0.75rem;
}
.ct-header-left[b-uuw70k6afb] { display: flex; align-items: center; gap: 0.5rem; }
.ct-header-title[b-uuw70k6afb] { font-weight: 700; font-size: 0.95rem; color: #111827; }
.ct-badge[b-uuw70k6afb] {
    background: #f3f4f6; color: #4b5563; border: 1px solid #e5e7eb;
    padding: 0.15rem 0.5rem; border-radius: 12px; font-size: 0.68rem; font-weight: 600;
}
.ct-badge-blue[b-uuw70k6afb] {
    background: #eff6ff; color: #2563eb; border: 1px solid #bfdbfe;
    padding: 0.15rem 0.5rem; border-radius: 12px; font-size: 0.68rem; font-weight: 600;
}
.ct-btn-new[b-uuw70k6afb] {
    background: #2563eb; border: none; color: white;
    padding: 0.35rem 0.85rem; border-radius: 8px; font-size: 0.78rem;
    font-weight: 600; cursor: pointer; transition: all 0.15s ease;
    display: flex; align-items: center; gap: 0.3rem;
}
.ct-btn-new:hover[b-uuw70k6afb] { background: #1d4ed8; transform: translateY(-1px); box-shadow: 0 2px 8px rgba(37,99,235,0.3); }

/* Scrollable list */
.ct-list[b-uuw70k6afb] {
    max-height: 70vh; overflow-y: auto; display: flex; flex-direction: column; gap: 0.5rem;
    scrollbar-width: thin; scrollbar-color: #d1d5db transparent;
}
.ct-list[b-uuw70k6afb]::-webkit-scrollbar { width: 5px; }
.ct-list[b-uuw70k6afb]::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }

/* Accordion card */
.ct-card[b-uuw70k6afb] {
    background: white; border: 1px solid #e5e7eb;
    transition: box-shadow 0.2s ease;
}
.ct-card:hover[b-uuw70k6afb] { box-shadow: 0 2px 12px rgba(0,0,0,0.06); }

.ct-card-header[b-uuw70k6afb] {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.55rem 0.85rem; cursor: pointer; user-select: none;
    background: #fafbfc; transition: background 0.15s;
}
.ct-card-header:hover[b-uuw70k6afb] { background: #f1f5f9; }
.ct-card-header-left[b-uuw70k6afb] { display: flex; align-items: center; gap: 0.65rem; min-width: 0; flex: 1; }
.ct-card-toggle[b-uuw70k6afb] {
    width: 18px; height: 18px; display: flex; align-items: center; justify-content: center;
    border-radius: 4px; background: #ecfdf5; color: #6b7280; font-size: 0.55rem;
    flex-shrink: 0; transition: transform 0.25s ease, color 0.15s;
}
.ct-card-toggle.open[b-uuw70k6afb] { transform: rotate(90deg); color: #10b981; }
.ct-card-info[b-uuw70k6afb] { min-width: 0; flex: 1; }
.ct-card-prov[b-uuw70k6afb] { font-weight: 700; font-size: 0.82rem; color: #1e293b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ct-card-meta[b-uuw70k6afb] {
    font-size: 0.68rem; color: #64748b; display: flex; gap: 0.6rem; flex-wrap: wrap; align-items: center; margin-top: 0.1rem;
}
.ct-card-meta-item[b-uuw70k6afb] { display: flex; align-items: center; gap: 0.2rem; }
.ct-card-right[b-uuw70k6afb] { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.ct-card-total[b-uuw70k6afb] {
    font-weight: 700; font-size: 0.82rem; color: #1e293b;
    font-family: 'Segoe UI', Consolas, monospace; white-space: nowrap;
}
.ct-card-actions[b-uuw70k6afb] { display: flex; gap: 0.3rem; }

.ct-cadencia[b-uuw70k6afb] {
    display: inline-block; font-size: 0.58rem; font-weight: 700;
    padding: 1px 7px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.04em;
    background: #eff6ff; color: #2563eb; border: 1px solid #bfdbfe;
}

/* Card body (collapsible) */
.ct-card-body[b-uuw70k6afb] {
    max-height: 0; overflow: hidden; transition: max-height 0.3s ease;
}
.ct-card-body.open[b-uuw70k6afb] { max-height: 2000px; }

/* Action buttons */
.ct-btn-sm[b-uuw70k6afb] {
    background: white; border: 1px solid #e5e7eb; color: #374151;
    padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.68rem;
    font-weight: 600; cursor: pointer; transition: all 0.15s;
    display: inline-flex; align-items: center; gap: 0.2rem;
}
.ct-btn-sm:hover[b-uuw70k6afb] { background: #f9fafb; border-color: #9ca3af; }
.ct-btn-sm.danger[b-uuw70k6afb] { color: #ef4444; border-color: #fecaca; }
.ct-btn-sm.danger:hover[b-uuw70k6afb] { background: #fef2f2; border-color: #f87171; }

/* Menú flotante de acciones */
.ct-actions-backdrop[b-uuw70k6afb] { position: fixed; inset: 0; z-index: 40; background: transparent; }
.ct-actions-menu[b-uuw70k6afb] { position: relative; display: inline-block; }
.ct-actions-trigger[b-uuw70k6afb] { padding: 0.2rem 0.45rem; }
.ct-actions-menu.open .ct-actions-trigger[b-uuw70k6afb] { background: #f1f5f9; border-color: #9ca3af; }
.ct-actions-dropdown[b-uuw70k6afb] {
    position: fixed; z-index: 60;
    min-width: 210px; background: white; border: 1px solid #e5e7eb;
    border-radius: 8px; box-shadow: 0 8px 24px rgba(15, 23, 42, 0.14);
    padding: 0.3rem; display: flex; flex-direction: column; gap: 1px;
}
.ct-actions-item[b-uuw70k6afb] {
    display: flex; align-items: center; gap: 0.5rem; width: 100%;
    background: none; border: none; cursor: pointer; text-align: left;
    padding: 0.4rem 0.6rem; border-radius: 6px; font-size: 0.78rem;
    font-weight: 500; color: #334155; transition: background 0.12s;
}
.ct-actions-item:hover[b-uuw70k6afb] { background: #f1f5f9; }
.ct-actions-item i[b-uuw70k6afb] { font-size: 0.85rem; color: #64748b; width: 1rem; text-align: center; }
.ct-actions-item.danger[b-uuw70k6afb] { color: #ef4444; }
.ct-actions-item.danger i[b-uuw70k6afb] { color: #ef4444; }
.ct-actions-item.danger:hover[b-uuw70k6afb] { background: #fef2f2; }

/* Detail table */
.ct-detail-table[b-uuw70k6afb] {
    width: 100%; border-collapse: collapse; font-size: 0.75rem;
}
.ct-detail-table thead th[b-uuw70k6afb] {
    padding: 0.35rem 0.6rem; font-weight: 700; font-size: 0.6rem;
    text-transform: uppercase; letter-spacing: 0.04em; color: #94a3b8;
    border-bottom: 1px solid #e2e8f0; text-align: left; background: #f8fafc;
}
.ct-detail-table thead th.ta-right[b-uuw70k6afb] { text-align: right; }
.ct-detail-table tbody td[b-uuw70k6afb] {
    padding: 0.3rem 0.6rem; border-bottom: 1px solid #f1f5f9; color: #374151;
}
.ct-detail-table tbody tr:hover[b-uuw70k6afb] { background: #f9fafb; }
.ct-detail-table tfoot td[b-uuw70k6afb] {
    padding: 0.4rem 0.6rem; font-weight: 700; border-top: 2px solid #e2e8f0;
    background: #f8fafc; font-size: 0.78rem;
}
.ct-amt[b-uuw70k6afb] { text-align: right; font-family: 'Segoe UI', Consolas, monospace; }

/* Empty & loading */
.ct-empty[b-uuw70k6afb] {
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: 0.75rem; padding: 3rem 2rem;
    color: #9ca3af; font-size: 0.9rem; text-align: center;
}
.ct-empty-icon[b-uuw70k6afb] {
    width: 56px; height: 56px; border-radius: 50%; background: #f3f4f6;
    color: #9ca3af; display: flex; align-items: center; justify-content: center; font-size: 1.3rem;
}
.ct-loading[b-uuw70k6afb] {
    display: flex; align-items: center; justify-content: center;
    gap: 0.75rem; padding: 2rem; color: #6b7280; font-size: 0.85rem;
}
.ct-loading-spinner[b-uuw70k6afb] {
    width: 20px; height: 20px; border: 2px solid #e5e7eb;
    border-top-color: #374151; border-radius: 50%; animation: ct-spin-b-uuw70k6afb 0.6s linear infinite;
}
@keyframes ct-spin-b-uuw70k6afb { to { transform: rotate(360deg); } }

/* Form styles */
.ct-form-section[b-uuw70k6afb] { margin-bottom: 1rem; }
.ct-form-label[b-uuw70k6afb] {
    font-size: 0.72rem; font-weight: 700; color: #4b5563;
    margin-bottom: 0.35rem; display: block;
    text-transform: uppercase; letter-spacing: 0.04em;
}
.ct-form-row[b-uuw70k6afb] { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.ct-form-row > div[b-uuw70k6afb] { flex: 1; min-width: 180px; }

.ct-det-add-row[b-uuw70k6afb] {
    display: flex; gap: 0.5rem; align-items: flex-end;
    background: #f8fafc; border-radius: 8px; padding: 0.65rem;
    border: 1px solid #e2e8f0; margin-bottom: 0.65rem;
}
.ct-det-add-row .field[b-uuw70k6afb] { flex: 1; min-width: 0; }
.ct-det-add-row .field-sm[b-uuw70k6afb] { width: 130px; flex-shrink: 0; }

.ct-btn-add[b-uuw70k6afb] {
    background: #3b82f6; color: white; border: none;
    padding: 0.4rem 0.75rem; border-radius: 6px; font-size: 0.75rem;
    font-weight: 600; cursor: pointer; white-space: nowrap;
}
.ct-btn-add:hover[b-uuw70k6afb] { background: #2563eb; }
.ct-btn-add:disabled[b-uuw70k6afb] { opacity: 0.4; cursor: not-allowed; background: #9ca3af; }

.ct-btn-remove-line[b-uuw70k6afb] {
    background: white; border: 1px solid #d1d5db; color: #ef4444;
    padding: 0.2rem 0.5rem; border-radius: 4px; font-size: 0.7rem; cursor: pointer;
}
.ct-btn-remove-line:hover[b-uuw70k6afb] { background: #fee2e2; border-color: #fca5a5; }

.ct-dialog-actions[b-uuw70k6afb] {
    display: flex; justify-content: flex-end; gap: 0.75rem;
    margin-top: 1.25rem; padding-top: 0.85rem; border-top: 1px solid #e2e8f0;
}

.ct-error[b-uuw70k6afb] {
    background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px;
    padding: 0.5rem 0.75rem; color: #b91c1c; font-size: 0.8rem; margin-top: 0.65rem;
}

.ct-det-list-wrapper[b-uuw70k6afb] {
    border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden;
    max-height: 280px; overflow-y: auto;
}
.ct-det-list-empty[b-uuw70k6afb] {
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; padding: 2rem 1rem; color: #9ca3af; font-size: 0.8rem; text-align: center; gap: 0.35rem;
}

/* ── Solicitud de Pago — anidada dentro del contrato ── */
.sp-section[b-uuw70k6afb] {
    margin: 0.5rem 0.65rem 0.65rem;
    padding: 0.55rem 0.7rem 0.6rem;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-left: 3px solid #10b981;
    border-radius: 8px;
    position: relative;
}
.sp-section[b-uuw70k6afb]::before {
    content: '';
    position: absolute;
    top: -0.5rem; left: 1.2rem;
    width: 1px; height: 0.5rem;
    background: #d1d5db;
}
.sp-section-header[b-uuw70k6afb] {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 0.5rem; padding-bottom: 0.4rem;
    border-bottom: 1px solid #dcfce7;
}
.sp-section-title[b-uuw70k6afb] {
    font-weight: 700; font-size: 0.72rem; color: #065f46;
    display: flex; align-items: center; gap: 0.4rem;
    text-transform: uppercase; letter-spacing: 0.03em;
}
.sp-badge-count[b-uuw70k6afb] {
    background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0;
    padding: 0.1rem 0.45rem; border-radius: 10px; font-size: 0.6rem; font-weight: 700;
}
.sp-btn-new[b-uuw70k6afb] {
    background: #10b981; border: none; color: white;
    padding: 0.22rem 0.6rem; border-radius: 6px; font-size: 0.68rem;
    font-weight: 600; cursor: pointer; transition: all 0.15s;
}
.sp-btn-new:hover[b-uuw70k6afb] { background: #059669; }

.sp-card[b-uuw70k6afb] {
    background: white; border: 1px solid #d1fae5; border-radius: 8px;
    overflow: hidden; margin-bottom: 0.45rem;
    transition: box-shadow 0.15s;
    box-shadow: 0 1px 3px rgba(16,185,129,0.06);
}
.sp-card:hover[b-uuw70k6afb] { box-shadow: 0 2px 8px rgba(16,185,129,0.12); }

.sp-card-topbar[b-uuw70k6afb] {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.45rem 0.7rem; background: #f8fafc; border-bottom: 1px solid #f1f5f9;
    cursor: pointer; user-select: none; transition: background 0.15s;
}
.sp-card-topbar:hover[b-uuw70k6afb] { background: #f1f5f9; }
.sp-card-topbar-left[b-uuw70k6afb] {
    display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
}
.sp-card-toggle[b-uuw70k6afb] {
    width: 18px; height: 18px; display: flex; align-items: center; justify-content: center;
    border-radius: 4px; background: #ecfdf5; color: #6b7280; font-size: 0.55rem;
    flex-shrink: 0; transition: transform 0.25s ease, color 0.15s;
}
.sp-card-toggle.open[b-uuw70k6afb] { transform: rotate(90deg); color: #10b981; }
.sp-card-actions[b-uuw70k6afb] { display: flex; gap: 0.25rem; }
.sp-card-body[b-uuw70k6afb] {
    max-height: 0; overflow: hidden; transition: max-height 0.3s ease;
}
.sp-card-body.open[b-uuw70k6afb] { max-height: 1200px; }

.sp-estado[b-uuw70k6afb] {
    display: inline-block; font-size: 0.56rem; font-weight: 700;
    padding: 2px 8px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.04em;
}
.sp-estado-pendiente[b-uuw70k6afb] { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
.sp-estado-aprobada[b-uuw70k6afb] { background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }
.sp-estado-rechazada[b-uuw70k6afb] { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
.sp-estado-pagada[b-uuw70k6afb] { background: #dbeafe; color: #1e40af; border: 1px solid #bfdbfe; }

/* Solicitud de pago detail table */
.sp-table[b-uuw70k6afb] { width: 100%; border-collapse: collapse; font-size: 0.72rem; }
.sp-table thead th[b-uuw70k6afb] {
    padding: 0.3rem 0.6rem; font-weight: 700; font-size: 0.58rem;
    text-transform: uppercase; letter-spacing: 0.05em; color: #94a3b8;
    border-bottom: 1px solid #e2e8f0; text-align: left;
}
.sp-table thead th.ta-right[b-uuw70k6afb] { text-align: right; }
.sp-table tbody td[b-uuw70k6afb] {
    padding: 0.28rem 0.6rem; border-bottom: 1px solid #f1f5f9; color: #374151;
}
.sp-table tbody tr:hover[b-uuw70k6afb] { background: #f9fafb; }
.sp-table tfoot td[b-uuw70k6afb] {
    padding: 0.4rem 0.6rem; font-weight: 700; border-top: 2px solid #e2e8f0;
    background: #f8fafc; font-size: 0.76rem; color: #1e293b;
}
.sp-table .sp-amt[b-uuw70k6afb] {
    text-align: right; font-family: 'Segoe UI', Consolas, monospace; white-space: nowrap;
}

/* Adjuntos row inside table */
.sp-adj-row td[b-uuw70k6afb] { padding: 0.15rem 0.6rem 0.3rem; border-bottom: 1px solid #f1f5f9; }

/* Monto highlight */
.sp-monto-total[b-uuw70k6afb] {
    font-size: 0.82rem; font-weight: 800; color: #1e293b;
    font-family: 'Segoe UI', Consolas, monospace;
}

/* Progress bar */
.sp-progress-wrap[b-uuw70k6afb] {
    display: flex; align-items: center; gap: 0.4rem; margin-top: 0.05rem;
}
.sp-progress-bar[b-uuw70k6afb] {
    flex: 1; height: 4px; background: #e5e7eb; border-radius: 2px; overflow: hidden; max-width: 80px;
}
.sp-progress-fill[b-uuw70k6afb] {
    height: 100%; border-radius: 2px; transition: width 0.3s ease;
}
.sp-progress-fill.low[b-uuw70k6afb] { background: #3b82f6; }
.sp-progress-fill.mid[b-uuw70k6afb] { background: #f59e0b; }
.sp-progress-fill.high[b-uuw70k6afb] { background: #10b981; }
.sp-progress-label[b-uuw70k6afb] { font-size: 0.6rem; color: #64748b; font-weight: 600; white-space: nowrap; }

/* Image thumbnails */
.sp-img-grid[b-uuw70k6afb] {
    display: flex; gap: 0.3rem; flex-wrap: wrap;
}
.sp-img-thumb[b-uuw70k6afb] {
    width: 36px; height: 36px; border-radius: 4px; object-fit: cover;
    border: 1px solid #e5e7eb; cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s;
}
.sp-img-thumb:hover[b-uuw70k6afb] { transform: scale(1.08); box-shadow: 0 2px 8px rgba(0,0,0,0.12); }
.sp-img-more[b-uuw70k6afb] {
    width: 36px; height: 36px; border-radius: 4px; background: #f1f5f9;
    border: 1px solid #e5e7eb; display: flex; align-items: center; justify-content: center;
    font-size: 0.6rem; font-weight: 700; color: #64748b; cursor: pointer;
}
.sp-img-more:hover[b-uuw70k6afb] { background: #e2e8f0; }

.sp-det-item[b-uuw70k6afb] {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.2rem 0; font-size: 0.72rem; border-bottom: 1px solid #f1f5f9;
}
.sp-det-item:last-child[b-uuw70k6afb] { border-bottom: none; }

.sp-empty[b-uuw70k6afb] {
    text-align: center; color: #6b7280; font-size: 0.72rem;
    padding: 0.6rem 0; font-style: italic;
}

/* Image lightbox */
.ct-lightbox-overlay[b-uuw70k6afb] {
    position: fixed; inset: 0; background: rgba(0,0,0,0.85); z-index: 10000;
    display: flex; align-items: center; justify-content: center;
    animation: ct-fade-in-b-uuw70k6afb 0.2s ease;
}
.ct-lightbox-content[b-uuw70k6afb] {
    position: relative; max-width: 90vw; max-height: 90vh;
}
.ct-lightbox-img[b-uuw70k6afb] {
    max-width: 90vw; max-height: 85vh; border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.4); object-fit: contain;
}
.ct-lightbox-close[b-uuw70k6afb] {
    position: absolute; top: -12px; right: -12px;
    width: 32px; height: 32px; border-radius: 50%;
    background: white; border: none; color: #374151;
    font-size: 1rem; font-weight: 700; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.ct-lightbox-close:hover[b-uuw70k6afb] { background: #f3f4f6; }
.ct-lightbox-nav[b-uuw70k6afb] {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 36px; height: 36px; border-radius: 50%;
    background: rgba(255,255,255,0.9); border: none; color: #374151;
    font-size: 1.1rem; font-weight: 700; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.ct-lightbox-nav:hover[b-uuw70k6afb] { background: white; }
.ct-lightbox-prev[b-uuw70k6afb] { left: -50px; }
.ct-lightbox-next[b-uuw70k6afb] { right: -50px; }
.ct-lightbox-caption[b-uuw70k6afb] {
    text-align: center; color: rgba(255,255,255,0.8); font-size: 0.75rem;
    margin-top: 0.5rem;
}
@keyframes ct-fade-in-b-uuw70k6afb { from { opacity: 0; } to { opacity: 1; } }

/* Solicitud Pago form detalle */
.sp-form-det-card[b-uuw70k6afb] {
    background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px;
    padding: 0.5rem 0.65rem; margin-bottom: 0.5rem;
}
.sp-form-det-header[b-uuw70k6afb] {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 0.35rem;
}
.sp-form-det-name[b-uuw70k6afb] { font-size: 0.78rem; font-weight: 600; color: #1e293b; }
.sp-form-det-meta[b-uuw70k6afb] { font-size: 0.68rem; color: #64748b; }

.sp-upload-area[b-uuw70k6afb] {
    position: relative; border: 2px dashed #d1d5db; border-radius: 6px;
    padding: 0.5rem; text-align: center; color: #9ca3af; font-size: 0.72rem;
    cursor: pointer; transition: all 0.15s; margin-top: 0.35rem;
}
.sp-upload-area:hover[b-uuw70k6afb] { border-color: #3b82f6; color: #3b82f6; }

.sp-file-list[b-uuw70k6afb] { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.35rem; }
.sp-file-item[b-uuw70k6afb] {
    display: flex; align-items: center; gap: 0.3rem; background: white;
    border: 1px solid #e5e7eb; border-radius: 4px; padding: 0.2rem 0.5rem;
    font-size: 0.68rem; color: #374151;
}
.sp-file-remove[b-uuw70k6afb] {
    background: none; border: none; color: #ef4444; cursor: pointer;
    font-size: 0.7rem; padding: 0; line-height: 1;
}

/* Contract PDF buttons */
.ct-btn-pdf[b-uuw70k6afb] {
    background: white; border: 1px solid #e5e7eb; color: #2563eb;
    padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.68rem;
    font-weight: 600; cursor: pointer; transition: all 0.15s;
    display: inline-flex; align-items: center; gap: 0.2rem;
}
.ct-btn-pdf:hover[b-uuw70k6afb] { background: #eff6ff; border-color: #bfdbfe; }
.ct-btn-pdf.success[b-uuw70k6afb] { color: #10b981; border-color: #a7f3d0; }
.ct-btn-pdf.success:hover[b-uuw70k6afb] { background: #ecfdf5; border-color: #6ee7b7; }
.ct-badge-green[b-uuw70k6afb] {
    background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0;
    padding: 0.15rem 0.5rem; border-radius: 12px; font-size: 0.68rem; font-weight: 600;
}
.ct-badge-cancelado[b-uuw70k6afb] {
    background: #fee2e2; color: #991b1b; border: 1px solid #fecaca;
    padding: 0.15rem 0.5rem; border-radius: 12px; font-size: 0.68rem; font-weight: 600;
}
.ct-badge-archivado[b-uuw70k6afb] {
    background: #e2e8f0; color: #475569; border: 1px solid #cbd5e1;
    padding: 0.15rem 0.5rem; border-radius: 12px; font-size: 0.68rem; font-weight: 600;
}
.ct-upload-signed[b-uuw70k6afb] {
    position: relative; display: inline-flex;
}
.ct-upload-signed[b-uuw70k6afb]  input[type="file"] {
    position: absolute; inset: 0; opacity: 0; cursor: pointer;
}

/* Detail dialog */
.ct-tabs[b-uuw70k6afb] {
    display: flex; border-bottom: 2px solid #e5e7eb; margin-bottom: 0.65rem; gap: 0;
}
.ct-tab[b-uuw70k6afb] {
    padding: 0.45rem 1rem; font-size: 0.78rem; font-weight: 600;
    color: #6b7280; background: none; border: none; cursor: pointer;
    border-bottom: 2px solid transparent; margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
    display: flex; align-items: center; gap: 0.35rem;
}
.ct-tab:hover[b-uuw70k6afb] { color: #374151; }
.ct-tab.active[b-uuw70k6afb] { color: #2563eb; border-bottom-color: #2563eb; }
.ct-tab-badge[b-uuw70k6afb] {
    background: #f3f4f6; color: #4b5563; border: 1px solid #e5e7eb;
    padding: 0.05rem 0.4rem; border-radius: 10px; font-size: 0.62rem; font-weight: 700;
}
.ct-tab.active .ct-tab-badge[b-uuw70k6afb] { background: #eff6ff; color: #2563eb; border-color: #bfdbfe; }
.ct-tab-panel[b-uuw70k6afb] { display: none; }
.ct-tab-panel.active[b-uuw70k6afb] { display: block; }
.ct-dialog-body[b-uuw70k6afb] {
    display: flex; flex-direction: column; height: 100%; overflow: hidden;
}
.ct-dialog-scroll[b-uuw70k6afb] {
    flex: 1; overflow-y: auto; min-height: 0;
    scrollbar-width: thin; scrollbar-color: #d1d5db transparent;
}
.ct-dialog-scroll[b-uuw70k6afb]::-webkit-scrollbar { width: 5px; }
.ct-dialog-scroll[b-uuw70k6afb]::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }
.ct-dialog-footer[b-uuw70k6afb] { flex-shrink: 0; }
.ct-info-grid[b-uuw70k6afb] {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem 1.25rem;
}
.ct-info-item[b-uuw70k6afb] { display: flex; flex-direction: column; gap: 0.15rem; }
.ct-info-label[b-uuw70k6afb] {
    font-size: 0.62rem; font-weight: 700; color: #94a3b8;
    text-transform: uppercase; letter-spacing: 0.04em;
}
.ct-info-value[b-uuw70k6afb] { font-size: 0.85rem; font-weight: 600; color: #1e293b; }
.ct-info-value.muted[b-uuw70k6afb] { color: #94a3b8; font-weight: 400; font-style: italic; }
.ct-info-section-title[b-uuw70k6afb] {
    font-size: 0.72rem; font-weight: 700; color: #374151;
    text-transform: uppercase; letter-spacing: 0.04em;
    margin-top: 1rem; margin-bottom: 0.5rem; padding-bottom: 0.3rem;
    border-bottom: 1px solid #e5e7eb;
}

/* ── Tabla de contratos ── */
.ct-table-container[b-uuw70k6afb] {
    background: white; border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.02);
}
.ct-table[b-uuw70k6afb] { width: 100%; border-collapse: separate; border-spacing: 0; }
.ct-table th[b-uuw70k6afb] {
    background: #f8fafc; padding: 0.65rem 0.85rem; text-align: left; font-size: 0.65rem; font-weight: 700;
    text-transform: uppercase; color: #64748b; border-bottom: 1px solid #e2e8f0; letter-spacing: 0.04em;
}
.ct-table td[b-uuw70k6afb] {
    padding: 0.45rem 0.85rem; border-bottom: 1px solid #f1f5f9; font-size: 0.82rem; color: #334155; vertical-align: middle;
}
.ct-table tr:last-child td[b-uuw70k6afb] { border-bottom: none; }
.ct-table td.nowrap[b-uuw70k6afb], .ct-table .nowrap[b-uuw70k6afb] { white-space: nowrap; }
.ct-row[b-uuw70k6afb] { cursor: pointer; transition: background 0.15s; }
.ct-row:hover[b-uuw70k6afb] { background: #eff6ff; }

.ct-cell-inline[b-uuw70k6afb] { display: flex; align-items: center; gap: 0.4rem; min-width: 0; }
.ct-prov-name[b-uuw70k6afb] {
    font-weight: 600; color: #0f172a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ── Indicador de requisitos documentales ── */
.ct-checklist[b-uuw70k6afb] { display: flex; align-items: center; gap: 0.4rem; }
.ct-checklist.clickable[b-uuw70k6afb] {
    cursor: pointer; border-radius: 6px; padding: 0.25rem 0.4rem; margin: -0.25rem -0.4rem;
    transition: background 0.15s;
}
.ct-checklist.clickable:hover[b-uuw70k6afb] { background: #f0fdfa; }
.ct-checklist-bar[b-uuw70k6afb] { display: flex; flex-wrap: wrap; gap: 3px; max-width: 130px; }
.ct-chk-dot[b-uuw70k6afb] {
    display: inline-block; width: 10px; height: 10px; border-radius: 2px; cursor: default; flex-shrink: 0;
}
.ct-chk-dot.ok[b-uuw70k6afb]      { background: #2e7d32; }
.ct-chk-dot.fail[b-uuw70k6afb]    { background: #c62828; }
.ct-chk-dot.pending[b-uuw70k6afb] { background: #d1d5db; border: 1px solid #9ca3af; }
.ct-chk-count[b-uuw70k6afb] { font-size: 0.68rem; font-weight: 600; white-space: nowrap; }
.ct-chk-count.all-ok[b-uuw70k6afb]  { color: #2e7d32; }
.ct-chk-count.none-ok[b-uuw70k6afb] { color: #c62828; }
.ct-chk-count.partial[b-uuw70k6afb] { color: #b45309; }

/* ── Documentos adjuntos dentro del diálogo de checklist ── */
.ct-chk-docs[b-uuw70k6afb] { margin: 0.4rem 0 0 1.5rem; display: flex; flex-direction: column; gap: 0.25rem; }
.ct-chk-doc-row[b-uuw70k6afb] {
    display: flex; align-items: center; gap: 0.4rem;
    background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px;
    padding: 0.2rem 0.45rem; font-size: 0.72rem; color: #334155;
}
.ct-chk-doc-row > i[b-uuw70k6afb] { color: #0f766e; flex-shrink: 0; }
.ct-chk-doc-name[b-uuw70k6afb] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct-chk-doc-btn[b-uuw70k6afb] {
    background: none; border: none; cursor: pointer; color: #64748b;
    padding: 0.1rem 0.25rem; border-radius: 4px; font-size: 0.72rem; transition: background 0.15s, color 0.15s;
}
.ct-chk-doc-btn:hover[b-uuw70k6afb] { background: #e2e8f0; color: #2563eb; }
.ct-chk-doc-btn.danger:hover[b-uuw70k6afb] { background: #fef2f2; color: #ef4444; }
.ct-chk-doc-upload[b-uuw70k6afb] {
    display: inline-flex; align-items: center; gap: 0.3rem; align-self: flex-start;
    cursor: pointer; font-size: 0.7rem; font-weight: 600; color: #0f766e;
    border: 1px dashed #99f6e4; border-radius: 6px; padding: 0.25rem 0.5rem;
    background: #f0fdfa; transition: background 0.15s, border-color 0.15s;
}
.ct-chk-doc-upload:hover[b-uuw70k6afb] { background: #ccfbf1; border-color: #5eead4; }
.ct-chk-doc-upload.loading[b-uuw70k6afb] { color: #94a3b8; border-color: #e2e8f0; background: #f8fafc; cursor: default; }

/* ── Tira de resumen financiero del contrato (detalle) ── */
.ct-fin[b-uuw70k6afb] {
    background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px;
    padding: 0.6rem 0.85rem; margin-bottom: 0.65rem;
}
.ct-fin-items[b-uuw70k6afb] { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; }
.ct-fin-item[b-uuw70k6afb] { display: flex; flex-direction: column; gap: 0.05rem; min-width: 90px; }
.ct-fin-label[b-uuw70k6afb] {
    font-size: 0.58rem; font-weight: 700; color: #94a3b8;
    text-transform: uppercase; letter-spacing: 0.04em;
}
.ct-fin-value[b-uuw70k6afb] {
    font-size: 0.9rem; font-weight: 800; color: #0f172a;
    font-family: 'Segoe UI', Consolas, monospace; white-space: nowrap;
}
.ct-fin-item.pagado   .ct-fin-value[b-uuw70k6afb] { color: #2563eb; }
.ct-fin-item.aprobado .ct-fin-value[b-uuw70k6afb] { color: #059669; }
.ct-fin-item.revision .ct-fin-value[b-uuw70k6afb] { color: #b45309; }
.ct-fin-item.saldo    .ct-fin-value[b-uuw70k6afb] { color: #0f766e; }
.ct-fin-bar[b-uuw70k6afb] {
    margin-top: 0.55rem; height: 8px; border-radius: 5px; overflow: hidden;
    background: #e5e7eb; display: flex;
}
.ct-fin-seg[b-uuw70k6afb] { height: 100%; }
.ct-fin-seg.pagado[b-uuw70k6afb]   { background: #3b82f6; }
.ct-fin-seg.aprobado[b-uuw70k6afb] { background: #10b981; }
.ct-fin-seg.revision[b-uuw70k6afb] { background: #f59e0b; }

/* ── Stepper del procedimiento de pago (tab Términos) ── */
.ct-steps[b-uuw70k6afb] { display: flex; align-items: stretch; gap: 0.4rem; flex-wrap: wrap; }
.ct-step[b-uuw70k6afb] {
    flex: 1; min-width: 180px; display: flex; gap: 0.55rem;
    background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 0.6rem 0.7rem;
}
.ct-step-num[b-uuw70k6afb] {
    width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0;
    background: #2563eb; color: white; font-weight: 800; font-size: 0.78rem;
    display: flex; align-items: center; justify-content: center;
}
.ct-step-body[b-uuw70k6afb] { min-width: 0; }
.ct-step-title[b-uuw70k6afb] { font-size: 0.78rem; font-weight: 700; color: #1e293b; display: flex; align-items: center; gap: 0.3rem; }
.ct-step-title i[b-uuw70k6afb] { color: #2563eb; }
.ct-step-desc[b-uuw70k6afb] { font-size: 0.7rem; color: #64748b; margin-top: 0.2rem; line-height: 1.35; }
.ct-step-arrow[b-uuw70k6afb] { display: flex; align-items: center; color: #cbd5e1; font-size: 0.9rem; }

.ct-terms-note[b-uuw70k6afb] {
    display: flex; gap: 0.5rem; align-items: flex-start;
    background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px;
    padding: 0.55rem 0.75rem; font-size: 0.72rem; color: #1e40af; line-height: 1.4; margin-top: 0.85rem;
}
.ct-terms-note i[b-uuw70k6afb] { color: #2563eb; margin-top: 0.1rem; }

/* ── Candado (solicitud/contrato bloqueado) ── */
.sp-lock[b-uuw70k6afb] {
    display: inline-flex; align-items: center; gap: 0.25rem;
    font-size: 0.68rem; font-weight: 600; color: #94a3b8; padding: 0.2rem 0.4rem;
}

/* ── Datos del pago ejecutado (tarjeta de solicitud Pagada) ── */
.sp-pago-box[b-uuw70k6afb] {
    margin-top: 0.5rem; background: #eff6ff; border: 1px solid #bfdbfe;
    border-radius: 8px; padding: 0.5rem 0.7rem;
}
.sp-pago-head[b-uuw70k6afb] {
    font-size: 0.68rem; font-weight: 700; color: #1e40af; text-transform: uppercase;
    letter-spacing: 0.04em; display: flex; align-items: center; gap: 0.35rem; margin-bottom: 0.35rem;
}
.sp-pago-grid[b-uuw70k6afb] { display: flex; flex-wrap: wrap; gap: 0.35rem 1.5rem; }
.sp-pago-grid > div[b-uuw70k6afb] { display: flex; flex-direction: column; gap: 0.05rem; }
.sp-pago-lbl[b-uuw70k6afb] { font-size: 0.58rem; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.03em; }
.sp-pago-val[b-uuw70k6afb] { font-size: 0.78rem; font-weight: 600; color: #1e293b; font-family: 'Segoe UI', Consolas, monospace; }
.sp-pago-comprobantes[b-uuw70k6afb] { margin-top: 0.4rem; display: flex; flex-direction: column; gap: 0.25rem; }
.sp-comprobante-row[b-uuw70k6afb] {
    display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
    background: white; border: 1px solid #bfdbfe; border-radius: 6px; padding: 0.25rem 0.5rem; font-size: 0.72rem;
}
.sp-comprobante-row > span[b-uuw70k6afb] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── Línea de tiempo de estados ── */
.sp-timeline[b-uuw70k6afb] { margin-top: 0.5rem; border-top: 1px dashed #e2e8f0; padding-top: 0.5rem; }
.sp-timeline-title[b-uuw70k6afb] {
    font-size: 0.68rem; font-weight: 700; color: #64748b; text-transform: uppercase;
    letter-spacing: 0.04em; display: flex; align-items: center; gap: 0.35rem; margin-bottom: 0.4rem;
}
.sp-timeline-row[b-uuw70k6afb] { display: flex; gap: 0.5rem; padding: 0.15rem 0; }
.sp-timeline-dot[b-uuw70k6afb] {
    width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; margin-top: 0.25rem;
    box-shadow: 0 0 0 3px #f1f5f9;
}
.sp-timeline-body[b-uuw70k6afb] { min-width: 0; flex: 1; }
.sp-timeline-line[b-uuw70k6afb] { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.sp-timeline-date[b-uuw70k6afb] { font-size: 0.68rem; color: #64748b; font-family: 'Segoe UI', Consolas, monospace; }
.sp-timeline-user[b-uuw70k6afb] { font-size: 0.68rem; color: #475569; display: inline-flex; align-items: center; gap: 0.2rem; }
.sp-timeline-comment[b-uuw70k6afb] { font-size: 0.7rem; color: #374151; font-style: italic; margin-top: 0.1rem; }

/* ── Saldos por línea en el form de solicitud ── */
.sp-form-det-card.included[b-uuw70k6afb] { border-color: #93c5fd; background: #eff6ff; }
.sp-saldo-row[b-uuw70k6afb] { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.35rem; }
.sp-saldo-chip[b-uuw70k6afb] {
    font-size: 0.62rem; color: #475569; background: white; border: 1px solid #e2e8f0;
    border-radius: 10px; padding: 0.1rem 0.5rem;
}
.sp-saldo-chip b[b-uuw70k6afb] { color: #0f172a; }
.sp-saldo-chip.pagada[b-uuw70k6afb]  { background: #dbeafe; border-color: #bfdbfe; color: #1e40af; }
.sp-saldo-chip.pagada b[b-uuw70k6afb]  { color: #1e3a8a; }
.sp-saldo-chip.aprobada[b-uuw70k6afb] { background: #d1fae5; border-color: #a7f3d0; color: #065f46; }
.sp-saldo-chip.aprobada b[b-uuw70k6afb] { color: #064e3b; }
.sp-saldo-chip.revision[b-uuw70k6afb] { background: #fef3c7; border-color: #fde68a; color: #92400e; }
.sp-saldo-chip.revision b[b-uuw70k6afb] { color: #78350f; }
.sp-saldo-chip.saldo[b-uuw70k6afb] { background: #ccfbf1; border-color: #99f6e4; color: #0f766e; font-weight: 600; }
.sp-saldo-chip.saldo b[b-uuw70k6afb] { color: #115e59; }
.sp-saldo-chip.saldo.cero[b-uuw70k6afb] { background: #f1f5f9; border-color: #e2e8f0; color: #94a3b8; }
.sp-saldo-chip.saldo.cero b[b-uuw70k6afb] { color: #94a3b8; }

.sp-form-total[b-uuw70k6afb] {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 0.6rem; padding: 0.5rem 0.75rem; background: #0f172a; color: white; border-radius: 8px;
    font-size: 0.78rem; font-weight: 600;
}
.sp-form-total-amt[b-uuw70k6afb] { font-size: 0.95rem; font-weight: 800; font-family: 'Segoe UI', Consolas, monospace; }
