/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* ----- Sidebar ----- */

#sidebar[b-ctvb5z75zs] {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--sidebar-width);
    height: 100vh;
    background: var(--sidebar-bg);
    color: #cbd5e1;
    overflow-y: auto;
    z-index: 1040;
    transition: transform .25s;
}

#sidebar .brand[b-ctvb5z75zs] {
    padding: 0.6rem 1rem;
    color: #fff;
    border-bottom: 1px solid #334155;
}

#sidebar .brand img[b-ctvb5z75zs] {
    max-width: 210px;
    max-height: 39px;
}

#sidebar .nav-section[b-ctvb5z75zs] {
    padding: .5rem 1rem .35rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .78rem;
    font-weight: 700;
    color: var(--sidebar-active);
    margin-top: .75rem;
    border-bottom: 1px solid #334155;
}

#sidebar .nav-section:first-of-type[b-ctvb5z75zs] {
    margin-top: .25rem;
}

#sidebar[b-ctvb5z75zs]  .nav-link {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .5rem 1.25rem;
    color: #cbd5e1;
    text-decoration: none;
    border-radius: 0;
    border-start-end-radius: 20px;
    border-end-end-radius: 20px;
    cursor: pointer;
    background-image: linear-gradient(to right, #7ea9ef, #7ea9ef);
    background-size: 0% 100%;
    background-repeat: no-repeat;
    background-position: left center;
    transition: background-size 0.25s ease, color 0.15s;
}

#sidebar[b-ctvb5z75zs]  .nav-link:not(.active):hover {
    background-color: var(--sidebar-hover);
    background-size: 100% 100%;
    color: #ffffff;
    box-shadow: inset 5px 0 0 0 #3b82f6;
}

#sidebar[b-ctvb5z75zs]  .nav-link.active {
    background: var(--sidebar-active);
    color: #fff;
    font-weight: 600;
    border-left: #ee7522 5px solid;
    padding-top: 0.5rem;
    padding-right: 1.25rem;
    padding-bottom: 0.5rem;
    padding-left: 0.90rem;
    border-start-end-radius: 20px;
    border-end-end-radius: 20px;

}

#main-content[b-ctvb5z75zs] {
    margin-left: var(--sidebar-width);
    min-height: 100vh;
}

#page-content[b-ctvb5z75zs] {
    padding: 1rem;
}

@media (max-width: 991.98px) {
    #sidebar[b-ctvb5z75zs] {
        transform: translateX(-100%);
    }

    #sidebar.show[b-ctvb5z75zs] {
        transform: translateX(0);
    }

    #main-content[b-ctvb5z75zs] {
        margin-left: 0;
    }
}

/* Blazor error UI — se mantiene del template original */
#blazor-error-ui[b-ctvb5z75zs] {
    color-scheme: light only;
    align-items: center;
    background: #741c1c;
    bottom: 0;
    box-shadow: 0px -4px 8px 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: 9999;
    color: white;
}

#blazor-error-ui a[b-ctvb5z75zs] {
    color: white;
}

#blazor-error-ui .reload[b-ctvb5z75zs] {
    margin-left: auto;
    float: right;
}

#blazor-error-ui .dismiss[b-ctvb5z75zs] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

/* ----- Topbar ----- */

#topbar-wrapper[b-ctvb5z75zs] {
    position: sticky;
    top: 0;
    z-index: 1030;
    border-bottom: 1px solid #1e293b;
}

#topbar[b-ctvb5z75zs] {
    height: var(--topbar-height);
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.5rem;
}

.search-bar-topbar[b-ctvb5z75zs] {
    width: 220px;
    min-width: 140px;
}

#search-bar[b-ctvb5z75zs] {
    background: #b7c9db;
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
    padding: .5rem 1.5rem;
}

#search-bar .input-group[b-ctvb5z75zs] {
    max-width: 600px;
    margin: 0 auto;
}

#search-bar .input-group .btn[b-ctvb5z75zs] {
    border: 1px solid #6c757d;
}

#breadcrumb-bar[b-ctvb5z75zs] {
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    padding: .35rem 1.5rem;
}

#breadcrumb-bar[b-ctvb5z75zs]  .breadcrumb {
    margin-bottom: 0;
    font-size: .8rem;
}

#breadcrumb-bar[b-ctvb5z75zs]  .breadcrumb-item+.breadcrumb-item::before {
    color: #94a3b8;
}

#breadcrumb-bar[b-ctvb5z75zs]  .breadcrumb-item a {
    color: #64748b;
    text-decoration: none;
}

#breadcrumb-bar[b-ctvb5z75zs]  .breadcrumb-item a:hover {
    color: var(--sidebar-active);
    text-decoration: underline;
}

#breadcrumb-bar[b-ctvb5z75zs]  .breadcrumb-item.active {
    color: #1e293b;
    font-weight: 500;
}

.nav-copyright[b-ctvb5z75zs] {
    text-align: center;
    padding-top: 1rem;
    padding-bottom: 2rem;
    color: #d87c7c;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-w90rlcwpe2],
.components-reconnect-repeated-attempt-visible[b-w90rlcwpe2],
.components-reconnect-failed-visible[b-w90rlcwpe2],
.components-pause-visible[b-w90rlcwpe2],
.components-resume-failed-visible[b-w90rlcwpe2],
.components-rejoining-animation[b-w90rlcwpe2] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-w90rlcwpe2],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-w90rlcwpe2],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-w90rlcwpe2],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-w90rlcwpe2],
#components-reconnect-modal.components-reconnect-retrying[b-w90rlcwpe2],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-w90rlcwpe2],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-w90rlcwpe2],
#components-reconnect-modal.components-reconnect-failed[b-w90rlcwpe2],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-w90rlcwpe2] {
    display: block;
}


#components-reconnect-modal[b-w90rlcwpe2] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-w90rlcwpe2 0.5s both;

    &[open] {
        animation: components-reconnect-modal-slideUp-b-w90rlcwpe2 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-w90rlcwpe2 0.5s ease-in-out 0.3s;
        animation-fill-mode: both;
    }
}

    #components-reconnect-modal[b-w90rlcwpe2]::backdrop {
        background-color: rgba(0, 0, 0, 0.4);
        animation: components-reconnect-modal-fadeInOpacity-b-w90rlcwpe2 0.5s ease-in-out;
        opacity: 1;
    }

@keyframes components-reconnect-modal-slideUp-b-w90rlcwpe2 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-w90rlcwpe2 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-w90rlcwpe2 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-w90rlcwpe2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-w90rlcwpe2] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-w90rlcwpe2] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-w90rlcwpe2] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-w90rlcwpe2] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-w90rlcwpe2] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-w90rlcwpe2] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-w90rlcwpe2 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-w90rlcwpe2] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-w90rlcwpe2 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Configuracion/Configuracion.razor.rz.scp.css */
.catalogo-card[b-2b8t9fineh] {
    position: relative;
    overflow: hidden;
    transition: border-left-color 0.25s ease-in-out;
}

.catalogo-card[b-2b8t9fineh]::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--bs-primary-bg-subtle);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease-in-out;
}

.catalogo-card:hover[b-2b8t9fineh] {
    border-left-color: var(--bs-primary) !important;
}

.catalogo-card:hover[b-2b8t9fineh]::before {
    transform: scaleX(1);
}

.catalogo-card .card-body[b-2b8t9fineh] {
    position: relative;
}
/* /Components/Pages/Herramientas/Herramientas.razor.rz.scp.css */
.catalogo-card[b-7ma2a3mcta] {
    position: relative;
    overflow: hidden;
    transition: border-left-color 0.25s ease-in-out;
}

.catalogo-card[b-7ma2a3mcta]::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--bs-primary-bg-subtle);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease-in-out;
}

.catalogo-card:hover[b-7ma2a3mcta] {
    border-left-color: var(--bs-primary) !important;
}

.catalogo-card:hover[b-7ma2a3mcta]::before {
    transform: scaleX(1);
}

.catalogo-card .card-body[b-7ma2a3mcta] {
    position: relative;
}
/* /Components/Pages/Home/Home.razor.rz.scp.css */
.stat-card .stat-icon[b-i6ite4w0ql] {
    width: 48px;
    height: 48px;
    border-radius: .5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}

/* === Panel flotante de configuración === */
.dashboard-config-panel[b-i6ite4w0ql] {
    position: fixed;
    top: 0px;
    left: 0px;
    bottom: 0px;
    width: var(--sidebar-width, 260px);
    max-width: calc(100vw - 32px);
    background: #fff;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 8px rgba(0, 0, 0, 0.1);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: slideInLeft-b-i6ite4w0ql .2s ease;
}

@keyframes slideInLeft-b-i6ite4w0ql {
    from {
        transform: translateX(calc(-100% - 16px));
    }

    to {
        transform: translateX(0);
    }
}

.dashboard-config-header[b-i6ite4w0ql] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #1e293b;
    color: #fff;
    padding: 1.05rem 0.85rem;
    min-height: 48px;
}

.dashboard-config-header .btn-close[b-i6ite4w0ql] {
    filter: invert(1) grayscale(100%) brightness(200%);
}

.dashboard-config-header .btn-link[b-i6ite4w0ql] {
    color: rgba(255, 255, 255, 0.85);
}

.dashboard-config-header .btn-link:hover[b-i6ite4w0ql] {
    color: #fff;
}

.dashboard-config-list[b-i6ite4w0ql] {
    flex: 1;
    overflow-y: auto;
}

.dashboard-config-item:hover[b-i6ite4w0ql] {
    background-color: rgba(0, 0, 0, .03);
}

.dashboard-config-item[b-i6ite4w0ql] {
    border-bottom: 1px solid #1e293c;
}

.dashboard-config-item .form-check-label[b-i6ite4w0ql] {
    cursor: pointer;
    user-select: none;
}

.dashboard-ancho-select[b-i6ite4w0ql] {
    width: auto;
    min-width: 80px;
}

/* === Grid masonry del dashboard === */
.dashboard-grid[b-i6ite4w0ql] {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 10px;
    grid-auto-flow: dense;
    gap: 12px;
}

@media (max-width: 767.98px) {
    .dashboard-grid[b-i6ite4w0ql] {
        grid-template-columns: 1fr;
    }

    .dashboard-slot[b-i6ite4w0ql] {
        grid-column: span 1 !important;
    }
}



/* === Ranking numbers === */
[b-i6ite4w0ql] .ranking-number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    border-radius: 50%;
    font-weight: 700;
    font-size: .9rem;
    background-color: #e9ecef;
    color: #495057;
    flex-shrink: 0;
}

[b-i6ite4w0ql] .ranking-number.ranking-gold {
    background: linear-gradient(135deg, #f5d020, #f39c12);
    color: #fff;
    box-shadow: 0 2px 6px rgba(243, 156, 18, .4);
}

[b-i6ite4w0ql] .ranking-number.ranking-silver {
    background: linear-gradient(135deg, #bdc3c7, #95a5a6);
    color: #fff;
    box-shadow: 0 2px 6px rgba(149, 165, 166, .4);
}

[b-i6ite4w0ql] .ranking-number.ranking-bronze {
    background: linear-gradient(135deg, #e67e22, #b8560f);
    color: #fff;
    box-shadow: 0 2px 6px rgba(230, 126, 34, .4);
}

[b-i6ite4w0ql] .ranking-number.ranking-blue {
    background: linear-gradient(135deg, #4dabf7, #1971c2);
    color: #fff;
    box-shadow: 0 2px 4px rgba(25, 113, 194, .3);
}

.card[b-i6ite4w0ql] {
    background-color: var(--dashboard-card-bg) !important;
    border-color: var(--dashboard-card-border) !important;
}

.card-header[b-i6ite4w0ql] {
    background-color: var(--dashboard-card-header-bg) !important;
    color: var(--dashboard-card-header-color) !important;
}

.list-group-item[b-i6ite4w0ql] {
    background-color: transparent !important;
}
/* /Components/Pages/Login.razor.rz.scp.css */
.login-page[b-uf9vhw146n] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background:
        radial-gradient(circle at 85% 12%, rgba(59, 130, 246, 0.22), transparent 32%),
        radial-gradient(circle at 14% 88%, rgba(30, 41, 59, 0.16), transparent 36%),
        linear-gradient(140deg, #f8fafc 0%, #e2e8f0 100%);
}

.login-panel[b-uf9vhw146n] {
    width: min(100%, 460px);
    background-color: rgb(167 181 203);
    color: var(--sidebar-bg);
    border-radius: 1rem;
}

.login-logo[b-uf9vhw146n] {
    max-width: 270px;
    width: 100%;
    height: auto;
}

.login-panel :deep(.form-control)[b-uf9vhw146n] {
    border-color: #94a3b8;
    background-color: #f8fafc;
}

.login-panel :deep(.form-control:focus)[b-uf9vhw146n] {
    border-color: #3b82f6;
    box-shadow: 0 0 0 .25rem rgba(59, 130, 246, 0.2);
}

h1[b-uf9vhw146n] {
    color: white;
}

label[b-uf9vhw146n] {
    color: white;
}

hr[b-uf9vhw146n] {
    color: white;
}

.card-body[b-uf9vhw146n] {
    border-radius: 1rem;
    background: var(--sidebar-bg);
    box-shadow: 0px 7px 0rem 0px rgb(30 41 59 / 13%) !important;
}
/* /Components/Pages/NotFound.razor.rz.scp.css */
  .not-found-container[b-sro1t1nl5w] {
      display: flex;
      align-items: center;
      justify-content: center;
  }

  .not-found-card[b-sro1t1nl5w] {
      text-align: center;
      max-width: 480px;
      width: 100%;
  }

  .not-found-icon[b-sro1t1nl5w] {
      font-size: 5rem;
      color: #9ca3af;
      display: block;
      margin-bottom: 1rem;
  }

  .not-found-code[b-sro1t1nl5w] {
      font-size: 6rem;
      font-weight: 800;
      color: #374151;
      line-height: 1;
      margin-bottom: 0.5rem;
  }

  .not-found-title[b-sro1t1nl5w] {
      font-size: 1.5rem;
      font-weight: 600;
      color: #374151;
      margin-bottom: 0.75rem;
  }

  .not-found-message[b-sro1t1nl5w] {
      color: #6b7280;
      font-size: 1rem;
      margin-bottom: 2rem;
  }

  .not-found-btn[b-sro1t1nl5w] {
      padding: 0.6rem 1.5rem;
      font-size: 0.95rem;
      border-radius: 8px;
  }
/* /Components/Pages/Seguridad/CambiarPassword.razor.rz.scp.css */
.login-page[b-fgdmt8az49] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background:
        radial-gradient(circle at 85% 12%, rgba(59, 130, 246, 0.22), transparent 32%),
        radial-gradient(circle at 14% 88%, rgba(30, 41, 59, 0.16), transparent 36%),
        linear-gradient(140deg, #f8fafc 0%, #e2e8f0 100%);
}

.login-panel[b-fgdmt8az49] {
    width: min(100%, 460px);
    background-color: rgb(167 181 203);
    color: var(--sidebar-bg);
    border-radius: 1rem;
}

.login-logo[b-fgdmt8az49] {
    max-width: 270px;
    width: 100%;
    height: auto;
}

.login-panel :deep(.form-control)[b-fgdmt8az49] {
    border-color: #94a3b8;
    background-color: #f8fafc;
}

.login-panel :deep(.form-control:focus)[b-fgdmt8az49] {
    border-color: #3b82f6;
    box-shadow: 0 0 0 .25rem rgba(59, 130, 246, 0.2);
}

h1[b-fgdmt8az49] {
    color: white;
}

label[b-fgdmt8az49] {
    color: white;
}

hr[b-fgdmt8az49] {
    color: white;
}

.card-body[b-fgdmt8az49] {
    border-radius: 1rem;
    background: var(--sidebar-bg);
    box-shadow: 0px 7px 0rem 0px rgb(30 41 59 / 13%) !important;
}
/* /Components/Pages/Servicios/Agenda/Agenda.razor.rz.scp.css */
/* Contenedor general de la página */
.agenda-page[b-vilp7glz9y] {
    min-height: 0;
    padding: 1em;
}

/* Fila principal: panel lateral + calendario */
.agenda-layout[b-vilp7glz9y] {
    min-height: 0;
    align-items: stretch;
}

/* Panel lateral (operarios + avisos sin planificar) */
.agenda-sidebar[b-vilp7glz9y] {
    width: 340px;
    flex: 0 0 340px;
    min-width: 0;
}

.agenda-sidebar.colapsado[b-vilp7glz9y] {
    width: auto;
    flex: 0 0 auto;
}

/* Cada panel del lateral (tarjeta con cabecera y lista) */
.agenda-panel[b-vilp7glz9y] {
    min-height: 0;
}

.agenda-panel .card-body[b-vilp7glz9y] {
    min-height: 0;
}

/* Listas internas del panel: hacen scroll de forma independiente */
.agenda-lista[b-vilp7glz9y] {
    max-height: 34vh;
}

/* Contenedor del calendario: ocupa la mayor parte de la pantalla */
.agenda-calendario[b-vilp7glz9y] {
    height: calc(100vh - 200px);
    min-height: 520px;
    min-width: 0;
    overflow: auto;
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
    background: var(--bs-body-bg);
}

/* El scheduler de DevExpress ocupa toda la altura del contenedor.
   Se usa ::deep porque el elemento raíz lo renderiza DevExpress y no lleva el atributo de ámbito. */
.agenda-calendario[b-vilp7glz9y]  .agenda-scheduler {
    height: 100%;
    min-width: 100%;
}

/* Puntos de color de la leyenda */
.leyenda-punto[b-vilp7glz9y] {
    width: .8rem;
    height: .8rem;
    border-radius: 50%;
    display: inline-block;
}

/* Ajuste responsive: en pantallas pequeñas el panel pasa arriba y el calendario debajo */
@media (max-width: 991.98px) {
    .agenda-layout[b-vilp7glz9y] {
        flex-direction: column;
    }

    .agenda-sidebar[b-vilp7glz9y] {
        width: 100%;
        flex: 1 1 auto;
    }

    .agenda-lista[b-vilp7glz9y] {
        max-height: 30vh;
    }

    .agenda-calendario[b-vilp7glz9y] {
        height: calc(100vh - 260px);
    }
}
/* /Components/Pages/Servicios/Avisos/AvisosEditar.razor.rz.scp.css */
/* ====== Timeline vertical del estado del aviso ====== */
.estado-timeline[b-4sj4vz5f3c] {
    position: relative;
    padding-left: 0.25rem;
}

.estado-step[b-4sj4vz5f3c] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.2rem 0;
    min-height: 2.1rem;
}

/* Línea conectora entre pasos */
.estado-step[b-4sj4vz5f3c]::before {
    content: "";
    position: absolute;
    left: 0.81rem;
    top: 1.65rem;
    bottom: -0.2rem;
    width: 2px;
    background-color: #dee2e6;
    z-index: 0;
}

.estado-step:last-child[b-4sj4vz5f3c]::before {
    display: none;
}

.estado-step-dot[b-4sj4vz5f3c] {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    background-color: #fff;
    color: #adb5bd;
    border: 2px solid #dee2e6;
    transition: all 0.2s ease;
}

.estado-step-label[b-4sj4vz5f3c] {
    font-size: 0.85rem;
    line-height: 1.1;
}

.estado-step.actual .estado-step-dot[b-4sj4vz5f3c] {
    box-shadow: 0 0 0 4px rgba(13, 110, 253, 0.15);
    transform: scale(1.08);
}

/* ====== Timeline vertical de trabajos ====== */

.trabajo-nodo-card[b-4sj4vz5f3c] {
    flex: 1 1 auto;
    border-left: 4px solid var(--estado-color-fondo, #dee2e6);
    box-shadow: var(--bs-box-shadow-sm);
    background-color: color-mix(in srgb, var(--estado-color-fondo) 15%, transparent);
}

/* ====== Chip de técnico ====== */
.tecnico-chip[b-4sj4vz5f3c] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background-color: #f1f5f9;
    border: 1px solid #dee2e6;
    border-radius: 2rem;
    padding: 0.2rem 0.7rem;
    font-size: 0.85rem;
}

.tecnico-chip>.bi-person-circle[b-4sj4vz5f3c] {
    color: #2260c5;
    font-size: 1rem;
}

.tecnico-chip.principal[b-4sj4vz5f3c] {
    background-color: #e7f0ff;
    border-color: #b6d0ff;
}

/* ====== Caja de información read-only ====== */
.info-box[b-4sj4vz5f3c] {
    background-color: #f8fafc;
    border: 1px solid #e9eef5;
    border-radius: 0.5rem;
    padding: 0.5rem 0.75rem;
}
/* /Components/Shared/AsignacionOperarios.razor.rz.scp.css */
.modal-fullscreen-margen[b-b1v4c3sw3v] {
    max-width: none;
    width: calc(100vw - 4rem);
    height: calc(100vh - 2rem);
    margin: 1rem;
}

.modal-fullscreen-margen .modal-content[b-b1v4c3sw3v] {
    height: 100%;
}

/* Permite que el calendario haga scroll horizontal (varios operarios seleccionados)
   sin forzar que la fila completa se envuelva y el calendario caiga debajo del listado. */
.calendario-scroll[b-b1v4c3sw3v] {
    min-width: 0;
    overflow: auto;
}
/* /Components/Shared/ChatPanel.razor.rz.scp.css */
/* ============================================================
   Panel de chat interno (estilo Telegram)
   ============================================================ */

.chat-overlay[b-0bquzwsv8g] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.25);
    z-index: 1045;
}

.chat-panel[b-0bquzwsv8g] {
    position: fixed;
    top: 16px;
    right: 16px;
    bottom: 16px;
    height: auto;
    width: 400px;
    max-width: calc(100vw - 32px);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 8px rgba(0, 0, 0, 0.1);
    transform: translateX(calc(100% + 16px));
    transition: transform 0.25s ease;
    z-index: 1046;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.chat-panel.show[b-0bquzwsv8g] {
    transform: translateX(0);
}

@media (max-width: 480px) {
    .chat-panel[b-0bquzwsv8g] {
        width: 100vw;
    }
}

/* ---------- Cabecera ---------- */
.chat-header[b-0bquzwsv8g] {
    display: flex;
    align-items: center;
    background: #2b5278;
    color: #fff;
    padding: 0.65rem 0.85rem;
    min-height: 56px;
}

.chat-header-title[b-0bquzwsv8g] {
    font-weight: 600;
    font-size: 1rem;
}

.chat-header-subtitle[b-0bquzwsv8g] {
    font-size: 0.75rem;
    opacity: 0.8;
}

.chat-header .btn-link[b-0bquzwsv8g] {
    text-decoration: none;
}

/* ---------- Cuerpo ---------- */
.chat-body[b-0bquzwsv8g] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #f4f6f8;
}

/* ---------- Avatares ---------- */
.chat-avatar[b-0bquzwsv8g] {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #5288c1;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 0.95rem;
    flex-shrink: 0;
}

.chat-avatar.grupo[b-0bquzwsv8g] {
    background: #6c8ea4;
}

/* ---------- Listado de conversaciones ---------- */
.chat-conversaciones[b-0bquzwsv8g] {
    overflow-y: auto;
    flex: 1;
}

.chat-conversacion[b-0bquzwsv8g] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    border: none;
    background: transparent;
    padding: 0.6rem 0.85rem;
    text-align: left;
    border-bottom: 1px solid #eceff1;
}

.chat-conversacion:hover[b-0bquzwsv8g] {
    background: #eaf2fb;
}

.chat-conversacion-info[b-0bquzwsv8g] {
    flex: 1;
    min-width: 0;
}

.chat-conversacion-nombre[b-0bquzwsv8g] {
    font-weight: 600;
    color: #1f2d3d;
    font-size: 0.92rem;
}

.chat-conversacion-fecha[b-0bquzwsv8g] {
    font-size: 0.7rem;
    color: #90a4ae;
    flex-shrink: 0;
    margin-left: 0.5rem;
}

.chat-conversacion-ultimo[b-0bquzwsv8g] {
    font-size: 0.82rem;
    color: #607d8b;
    max-width: 250px;
}

.chat-badge[b-0bquzwsv8g] {
    background: #4caf50;
    color: #fff;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-left: 0.5rem;
}

/* ---------- Hilo de mensajes ---------- */
.chat-mensajes[b-0bquzwsv8g] {
    flex: 1;
    overflow-y: auto;
    padding: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    background-color: #dfe7ef;
    background-image: radial-gradient(circle at 1px 1px, rgba(0, 0, 0, 0.04) 1px, transparent 0);
    background-size: 18px 18px;
}

.chat-mensaje[b-0bquzwsv8g] {
    display: flex;
    max-width: 80%;
}

.chat-mensaje.propio[b-0bquzwsv8g] {
    align-self: flex-end;
    justify-content: flex-end;
}

.chat-mensaje.ajeno[b-0bquzwsv8g] {
    align-self: flex-start;
}

.chat-burbuja[b-0bquzwsv8g] {
    padding: 0.4rem 0.6rem 0.3rem;
    border-radius: 12px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.08);
    position: relative;
    word-break: break-word;
}

.chat-mensaje.propio .chat-burbuja[b-0bquzwsv8g] {
    background: #effdde;
    border-bottom-right-radius: 3px;
}

.chat-mensaje.ajeno .chat-burbuja[b-0bquzwsv8g] {
    background: #fff;
    border-bottom-left-radius: 3px;
}

.chat-mensaje-autor[b-0bquzwsv8g] {
    font-size: 0.72rem;
    font-weight: 700;
    color: #2b5278;
    margin-bottom: 0.1rem;
}

.chat-mensaje-texto[b-0bquzwsv8g] {
    font-size: 0.88rem;
    color: #1f2d3d;
    white-space: pre-wrap;
}

.chat-mensaje-hora[b-0bquzwsv8g] {
    font-size: 0.65rem;
    color: #90a4ae;
    text-align: right;
    margin-top: 0.05rem;
}

/* ---------- Entrada de texto ---------- */
.chat-input[b-0bquzwsv8g] {
    display: flex;
    gap: 0.5rem;
    padding: 0.6rem 0.75rem;
    background: #fff;
    border-top: 1px solid #e0e0e0;
}

.chat-input .form-control[b-0bquzwsv8g] {
    border-radius: 999px;
}

.chat-enviar[b-0bquzwsv8g] {
    border-radius: 50%;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

/* ---------- Buscador / contactos ---------- */
.chat-buscador[b-0bquzwsv8g] {
    padding: 0.6rem 0.75rem;
    background: #fff;
    border-bottom: 1px solid #e0e0e0;
}

.chat-contactos[b-0bquzwsv8g] {
    overflow-y: auto;
    flex: 1;
    background: #fff;
}

.chat-contacto[b-0bquzwsv8g] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    border: none;
    background: transparent;
    padding: 0.55rem 0.85rem;
    text-align: left;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.9rem;
    color: #1f2d3d;
}

.chat-contacto:hover[b-0bquzwsv8g] {
    background: #eaf2fb;
}

.chat-contacto-check[b-0bquzwsv8g] {
    cursor: pointer;
}

/* ---------- Nuevo grupo ---------- */
.chat-nuevo-grupo[b-0bquzwsv8g] {
    padding: 0.75rem;
    background: #fff;
    border-bottom: 1px solid #e0e0e0;
}

.chat-contactos-grupo[b-0bquzwsv8g] {
    flex: 1;
}

.chat-nuevo-grupo-acciones[b-0bquzwsv8g] {
    padding: 0.75rem;
    background: #fff;
    border-top: 1px solid #e0e0e0;
}

/* ---------- Estado vacío ---------- */
.chat-empty[b-0bquzwsv8g] {
    text-align: center;
    color: #607d8b;
    padding: 2.5rem 1rem;
    margin: auto;
}

.chat-empty i[b-0bquzwsv8g] {
    font-size: 2.5rem;
    opacity: 0.4;
    display: block;
    margin-bottom: 0.5rem;
}
/* /Components/Shared/MicroCalendario.razor.rz.scp.css */
/* ====== Micro calendario de asignación (3 semanas) ====== */
.micro-cal[b-b24ln1k1df] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    width: fit-content;
}

.micro-cal-row[b-b24ln1k1df] {
    display: flex;
    gap: 3px;
}

.micro-cal-label[b-b24ln1k1df] {
    width: 15px;
    text-align: center;
    font-size: 0.6rem;
    font-weight: 600;
    color: #6c757d;
    line-height: 1;
}

.micro-cal-day[b-b24ln1k1df] {
    width: 15px;
    height: 15px;
    border-radius: 3px;
    background-color: rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-sizing: border-box;
}

/* Semana central (la que contiene el día asignado) resaltada */
.micro-cal-row--central .micro-cal-day[b-b24ln1k1df] {
    background-color: rgba(0, 0, 0, 0.15);
}

/* Día asignado */
.micro-cal-day--asignado[b-b24ln1k1df] {
    box-shadow: 0 0 0 3px #dc3545;
}

/* Día de hoy */
.micro-cal-day--hoy[b-b24ln1k1df] {
    background-color: #0d6efd !important;
}
/* /Components/Shared/WelcomeBanner.razor.rz.scp.css */
/* === Panel de bienvenida (hero) === */
.welcome-hero[b-ysat9087fq] {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: welcomeFadeIn-b-ysat9087fq .8s ease;
}

.welcome-bg[b-ysat9087fq] {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 40%, #1e1b4b 100%);
    z-index: 0;
    overflow: hidden;
}

.welcome-bg[b-ysat9087fq]::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 600px 300px at 15% 50%, rgba(220, 38, 38, .12) 0%, transparent 70%),
        radial-gradient(ellipse 500px 250px at 85% 30%, rgba(99, 102, 241, .10) 0%, transparent 70%);
    z-index: 1;
}

/* --- Orbes flotantes --- */
.welcome-orb[b-ysat9087fq] {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: .35;
    z-index: 1;
    will-change: transform;
}

.welcome-orb-1[b-ysat9087fq] {
    width: 280px;
    height: 280px;
    background: radial-gradient(circle, rgba(220, 38, 38, .5), transparent 70%);
    top: -60px;
    left: -40px;
    animation: orbDrift1-b-ysat9087fq 12s ease-in-out infinite;
}

.welcome-orb-2[b-ysat9087fq] {
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(99, 102, 241, .45), transparent 70%);
    bottom: -40px;
    right: 10%;
    animation: orbDrift2-b-ysat9087fq 15s ease-in-out infinite;
}

.welcome-orb-3[b-ysat9087fq] {
    width: 150px;
    height: 150px;
    background: radial-gradient(circle, rgba(249, 115, 22, .35), transparent 70%);
    top: 30%;
    right: 25%;
    animation: orbDrift3-b-ysat9087fq 10s ease-in-out infinite;
}

@keyframes orbDrift1-b-ysat9087fq {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    33% {
        transform: translate(80px, 40px) scale(1.15);
    }

    66% {
        transform: translate(30px, -20px) scale(.9);
    }
}

@keyframes orbDrift2-b-ysat9087fq {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    33% {
        transform: translate(-60px, -30px) scale(1.1);
    }

    66% {
        transform: translate(-20px, 20px) scale(.85);
    }
}

@keyframes orbDrift3-b-ysat9087fq {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(-40px, 25px) scale(1.2);
    }
}

/* --- Shimmer sweep --- */
.welcome-shimmer[b-ysat9087fq] {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(105deg,
            transparent 40%,
            rgba(255, 255, 255, .04) 45%,
            rgba(255, 255, 255, .08) 50%,
            rgba(255, 255, 255, .04) 55%,
            transparent 60%);
    background-size: 200% 100%;
    animation: shimmerSweep-b-ysat9087fq 6s ease-in-out 1s infinite;
}

@keyframes shimmerSweep-b-ysat9087fq {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.welcome-content[b-ysat9087fq] {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 2.5rem 2rem;
    animation: welcomeSlideUp-b-ysat9087fq .7s ease .15s both;
}

.welcome-logo[b-ysat9087fq] {
    height: 64px;
    margin-bottom: 1.25rem;
    filter: drop-shadow(0 4px 24px rgba(220, 38, 38, .3));
}

.welcome-title[b-ysat9087fq] {
    color: #f1f5f9;
    font-size: 1.75rem;
    font-weight: 300;
    letter-spacing: -0.02em;
    margin-bottom: .5rem;
}

.welcome-title span[b-ysat9087fq] {
    font-weight: 700;
    color: #fff;
}

.welcome-subtitle[b-ysat9087fq] {
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
    font-weight: 700;
    background: linear-gradient(90deg, #ef4444, #f97316);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.welcome-hint[b-ysat9087fq] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: #64748b;
    font-size: .8rem;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 100px;
    padding: .4rem 1rem;
    backdrop-filter: blur(4px);
}

.welcome-hint strong[b-ysat9087fq] {
    color: #cbd5e1;
}

@keyframes welcomeFadeIn-b-ysat9087fq {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes welcomeSlideUp-b-ysat9087fq {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes welcomeFloat-b-ysat9087fq {

    0%,
    100% {
        transform: translateY(0);
        filter: drop-shadow(0 4px 24px rgba(220, 38, 38, .3));
    }

    50% {
        transform: translateY(-8px);
        filter: drop-shadow(0 12px 32px rgba(220, 38, 38, .5));
    }
}


@keyframes robotRun-b-ysat9087fq {
    0% {
        left: -120px;
    }

    100% {
        left: calc(100% + 40px);
    }
}

/* Balanceo del cuerpo al correr */
[b-ysat9087fq] .robot-svg {
    animation: robotRun-b-ysat9087fq 8s linear infinite, robotBounce-b-ysat9087fq .3s ease-in-out infinite;
}

@keyframes robotBounce-b-ysat9087fq {

    0%,
    100% {
        transform: translateY(0) rotate(-2deg);
    }

    50% {
        transform: translateY(-4px) rotate(2deg);
    }
}

/* Piernas alternando */
[b-ysat9087fq] .robot-leg-front {
    transform-origin: 72px 42px;
    animation: legSwingFront-b-ysat9087fq .3s ease-in-out infinite;
}

[b-ysat9087fq] .robot-leg-back {
    transform-origin: 58px 42px;
    animation: legSwingBack-b-ysat9087fq .3s ease-in-out infinite;
}

@keyframes legSwingFront-b-ysat9087fq {

    0%,
    100% {
        transform: rotate(15deg);
    }

    50% {
        transform: rotate(-15deg);
    }
}

@keyframes legSwingBack-b-ysat9087fq {

    0%,
    100% {
        transform: rotate(-15deg);
    }

    50% {
        transform: rotate(15deg);
    }
}

/* Cable ondeando */
[b-ysat9087fq] .robot-cable {
    animation: cableWave-b-ysat9087fq .4s ease-in-out infinite;
}

@keyframes cableWave-b-ysat9087fq {

    0%,
    100% {
        d: path("M58,52 C48,48 35,55 25,45 S5,50 -10,42 S-25,52 -35,44");
    }

    50% {
        d: path("M58,52 C48,55 35,45 25,52 S5,42 -10,50 S-25,44 -35,52");
    }
}

/* Enchufe moviéndose */
[b-ysat9087fq] .robot-plug {
    animation: plugSwing-b-ysat9087fq .4s ease-in-out infinite;
}

@keyframes plugSwing-b-ysat9087fq {

    0%,
    100% {
        transform: translateY(0) rotate(-5deg);
    }

    50% {
        transform: translateY(4px) rotate(5deg);
    }
}

/* Ojos parpadeando */
[b-ysat9087fq] .robot-eye {
    animation: eyeBlink-b-ysat9087fq 2s step-end infinite;
}

@keyframes eyeBlink-b-ysat9087fq {

    0%,
    90%,
    100% {
        r: 2;
    }

    95% {
        r: 0.5;
    }
}

/* Antena brillando */
[b-ysat9087fq] .robot-antenna-tip {
    animation: antennaGlow-b-ysat9087fq 1s ease-in-out infinite;
}

@keyframes antennaGlow-b-ysat9087fq {

    0%,
    100% {
        fill: #f97316;
        filter: drop-shadow(0 0 3px rgba(249, 115, 22, .6));
    }

    50% {
        fill: #fbbf24;
        filter: drop-shadow(0 0 8px rgba(251, 191, 36, .8));
    }
}

/* Chispas de velocidad */
[b-ysat9087fq] .robot-spark {
    animation: sparkFlicker-b-ysat9087fq .2s ease-in-out infinite alternate;
}

@keyframes sparkFlicker-b-ysat9087fq {
    from {
        opacity: .2;
    }

    to {
        opacity: .7;
    }
}

/* === Créditos (easter egg) === */
.credits-overlay[b-ysat9087fq] {
    position: fixed;
    inset: 0;
    background: #000;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    cursor: pointer;
    overflow: hidden;
    animation: creditsFadeIn-b-ysat9087fq .6s ease;
}

@keyframes creditsFadeIn-b-ysat9087fq {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.credits-container[b-ysat9087fq] {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    overflow: hidden;
    mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 85%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 85%, transparent 100%);
}

.credits-scroll[b-ysat9087fq] {
    animation: creditsRoll-b-ysat9087fq 35s linear forwards;
    text-align: center;
    padding: 0 2rem;
    position: absolute;
    top: 100%;
}

@keyframes creditsRoll-b-ysat9087fq {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(calc(-100% - 100vh));
    }
}

.credits-logo-section[b-ysat9087fq] {
    margin-bottom: 3rem;
    padding-top: 2rem;
}

.credits-logo[b-ysat9087fq] {
    height: 80px;
    filter: drop-shadow(0 0 30px rgba(220, 38, 38, .5));
    animation: creditsLogoGlow-b-ysat9087fq 3s ease-in-out infinite;
}

@keyframes creditsLogoGlow-b-ysat9087fq {

    0%,
    100% {
        filter: drop-shadow(0 0 20px rgba(220, 38, 38, .4));
    }

    50% {
        filter: drop-shadow(0 0 40px rgba(220, 38, 38, .7));
    }
}

.credits-section[b-ysat9087fq] {
    margin-bottom: 2.5rem;
}

.credits-section h3[b-ysat9087fq] {
    color: #f97316;
    font-size: .85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .2em;
    margin-bottom: .75rem;
}

.credits-section p[b-ysat9087fq] {
    color: #e2e8f0;
    font-size: 1.2rem;
    font-weight: 300;
    margin: .3rem 0;
    letter-spacing: .03em;
}

.credits-final[b-ysat9087fq] {
    margin-top: 4rem;
    margin-bottom: 6rem;
}

.credits-final p[b-ysat9087fq] {
    font-size: 1rem;
    color: #64748b;
}

.credits-heart[b-ysat9087fq] {
    display: inline-block;
    animation: heartbeat-b-ysat9087fq 1s ease-in-out infinite;
}

@keyframes heartbeat-b-ysat9087fq {

    0%,
    100% {
        transform: scale(1);
    }

    15% {
        transform: scale(1.25);
    }

    30% {
        transform: scale(1);
    }

    45% {
        transform: scale(1.15);
    }

    60% {
        transform: scale(1);
    }
}

.credits-hint[b-ysat9087fq] {
    position: fixed;
    bottom: 1.5rem;
    color: #475569;
    font-size: .75rem;
    letter-spacing: .05em;
    z-index: 10000;
    animation: creditsHintPulse-b-ysat9087fq 2s ease-in-out infinite;
}

@keyframes creditsHintPulse-b-ysat9087fq {

    0%,
    100% {
        opacity: .4;
    }

    50% {
        opacity: .8;
    }
}
