﻿/* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */

a.navbar-brand {
    white-space: normal;
    text-align: center;
    word-break: break-all;
}

/* Brand: Laboratorio Clínico Mexicali */
a {
    color: #e41f26;
}

.btn-primary {
    color: #fff;
    background-color: #e41f26;
    border-color: #e41f26;
}

.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
    color: #fff;
    background-color: #e41f26;
    border-color: #e41f26;
}

/* Theme panel — dark mode toggle only (color swatches hidden) */
.theme-panel .theme-list {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.theme-panel .theme-panel-content {
    padding: 0.75rem 1rem !important;
}

.theme-panel .theme-dark-row {
    min-height: 2rem;
    width: 100%;
}

.theme-panel .theme-dark-row .form-check-input {
    width: 2.5rem;
    height: 1.25rem;
    margin: 0;
    cursor: pointer;
    background-color: #c9d2e3;
    border-color: #c9d2e3;
}

.theme-panel .theme-dark-row .form-check-input:checked {
    background-color: #e41f26;
    border-color: #e41f26;
}

.theme-panel .theme-collapse-btn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    line-height: 1 !important;
}

.theme-panel .theme-collapse-btn .fa {
    margin: 0 !important;
}

.dark-mode .theme-panel .theme-panel-content {
    background: #32364a !important;
}

.dark-mode .theme-panel .theme-collapse-btn {
    background: #32364a !important;
    color: #ffffff !important;
}

.dark-mode .theme-panel .control-label,
.dark-mode .theme-panel .text-dark {
    color: #ffffff !important;
}

/* Brand logos — full on login, LCM mark in header/sidebar */
.login-brand-logo,
#imgHeader.login-brand-logo {
    width: min(420px, 70%);
    max-width: 100%;
    height: auto;
    display: block;
}

.brand-logo-mark,
#imgHeaderMenu.brand-logo-mark {
    width: auto !important;
    height: 2.75rem !important;
    max-width: 9rem;
    object-fit: contain;
    display: block;
}

.app-header .brand .brand-logo {
    padding: 0.65rem 0 !important;
}

/* Loading
-------------------------------------------------- */

.preloader {
    background-color: var(--bs-body-bg);
    height: 100%;
    left: 0px;
    top: 0px;
    position: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    z-index: 99999;
}

    .preloader .spinner {
        border: 4px solid rgba(0, 0, 0, 0.4);
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border-left-color: var(--app-theme);
        animation: spin 1s ease infinite;
    }

.dark-mode .preloader .spinner {
    border-color: rgba(255, 255, 255, 0.25);
    border-left-color: #e41f26;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Sticky footer styles
-------------------------------------------------- */
html {
    font-size: 14px;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.border-top {
    border-top: 1px solid #e5e5e5;
}

.border-bottom {
    border-bottom: 1px solid #e5e5e5;
}

.box-shadow {
    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}

button.accept-policy {
    font-size: 1rem;
    line-height: inherit;
}

/* Sticky footer styles
-------------------------------------------------- */
html {
    position: relative;
    min-height: 100%;
}

body {
    /* Margin bottom by footer height */
    margin-bottom: 60px;
}

.footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    white-space: nowrap;
    line-height: 60px; /* Vertically center the text there */
}

/* =========================================================
   Syncfusion EJ2 Grid — Laboratorio Clínico Mexicali
   Accent: #e41f26 | Dark surfaces: #292c3c family
   ========================================================= */

:root {
    --lcm-red: #e41f26;
    --lcm-red-rgb: 228, 31, 38;
    --lcm-navy: #292c3c;
    --lcm-navy-soft: #32364a;
    --lcm-navy-card: #34384d;
    --lcm-navy-border: #3f4459;
    --lcm-navy-hover: #4a5068;
}

/* --- Light theme accents --- */
.e-grid .e-headercell,
.e-grid .e-columnheader,
.e-grid .e-groupdroparea,
.e-grid .e-gridheader,
.e-grid .e-toolbar,
.e-grid .e-toolbar .e-toolbar-items {
    border-color: #d1d9e7 !important;
}

.e-grid .e-focused:not(.e-menu-item):not(.e-editedbatchcell),
.e-grid .e-focus,
.e-grid td.e-active,
.e-grid .e-row.e-selectionbackground,
.e-grid .e-selectionbackground,
.e-grid .e-active.e-selectionbackground {
    box-shadow: none !important;
}

.e-grid .e-row.e-selectionbackground .e-rowcell,
.e-grid .e-selectionbackground,
.e-grid td.e-selectionbackground,
.e-grid .e-rowcell.e-selectionbackground {
    background-color: rgba(var(--lcm-red-rgb), 0.12) !important;
}

.e-grid .e-headercell.e-mousepointer:hover,
.e-grid .e-headercell:hover {
    background-color: rgba(var(--lcm-red-rgb), 0.06) !important;
}

.e-grid .e-icon-filter,
.e-grid .e-icon-filter::before,
.e-grid .e-filtered::before,
.e-grid .e-columnmenu-btn,
.e-grid .e-icon-grightarrow,
.e-grid .e-icon-gdownarrow {
    color: var(--lcm-red) !important;
}

.e-grid .e-groupdroparea {
    color: #6b7280 !important;
}

.e-pager .e-currentitem,
.e-pager .e-numericitem.e-currentitem,
.e-pager .e-numericitem.e-active {
    background: transparent !important;
    border: 1px solid var(--lcm-red) !important;
    color: var(--lcm-red) !important;
    border-radius: 4px !important;
}

.e-pager .e-numericitem:hover,
.e-pager .e-link:hover {
    color: var(--lcm-red) !important;
}

.e-pager .e-spacing.e-numericitem:not(.e-currentitem):not(.e-active):hover {
    background: rgba(var(--lcm-red-rgb), 0.08) !important;
}

.e-checkbox-wrapper .e-frame.e-check,
.e-css.e-checkbox-wrapper .e-frame.e-check,
.e-checkbox-wrapper:hover .e-frame.e-check {
    background-color: var(--lcm-red) !important;
    border-color: var(--lcm-red) !important;
}

.e-btn.e-primary,
.e-css.e-btn.e-primary,
.e-tbar-btn.e-primary,
button.e-primary {
    background-color: var(--lcm-red) !important;
    border-color: var(--lcm-red) !important;
    color: #fff !important;
}

.e-btn.e-primary:hover,
.e-css.e-btn.e-primary:hover {
    background-color: #c41a20 !important;
    border-color: #c41a20 !important;
}

.e-input-group.e-input-focus:not(.e-success):not(.e-warning):not(.e-error),
.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
.e-input-group.e-control-wrapper.e-input-focus:not(.e-success):not(.e-warning):not(.e-error) {
    border-color: var(--lcm-red) !important;
    box-shadow: 0 0 0 1px rgba(var(--lcm-red-rgb), 0.25) !important;
}

.e-grid .e-filtermenudiv::before,
.e-grid .e-filtered::before {
    color: var(--lcm-red) !important;
}

.e-excelfilter .e-footer-content .e-btn.e-primary,
.e-dlg-container .e-footer-content .e-btn.e-primary {
    background-color: var(--lcm-red) !important;
    border-color: var(--lcm-red) !important;
}

.e-spinner-pane .e-spinner-inner .e-spin-material,
.e-spinner-pane .e-spinner-inner .e-spin-material3,
.e-spinner-pane .e-spinner-inner svg circle {
    stroke: var(--lcm-red) !important;
}

/* --- Dark mode surfaces (align Syncfusion to LCM navy) --- */
.dark-mode .e-grid,
.dark-mode .e-grid .e-gridheader,
.dark-mode .e-grid .e-gridcontent,
.dark-mode .e-grid .e-content,
.dark-mode .e-grid .e-table,
.dark-mode .e-grid .e-gridfooter,
.dark-mode .e-grid .e-groupdroparea,
.dark-mode .e-grid .e-toolbar,
.dark-mode .e-grid .e-toolbar .e-toolbar-items,
.dark-mode .e-grid .e-toolbar .e-tbar-btn,
.dark-mode .e-pager,
.dark-mode .e-pagercontainer {
    background-color: var(--lcm-navy-card) !important;
    border-color: var(--lcm-navy-border) !important;
    color: #ffffff !important;
}

.dark-mode .e-grid .e-headercell,
.dark-mode .e-grid .e-columnheader,
.dark-mode .e-grid .e-groupcaption,
.dark-mode .e-grid .e-indentcell,
.dark-mode .e-grid .e-recordplusexpand,
.dark-mode .e-grid .e-recordpluscollapse {
    background-color: var(--lcm-navy-soft) !important;
    border-color: var(--lcm-navy-border) !important;
    color: #ffffff !important;
}

.dark-mode .e-grid .e-rowcell,
.dark-mode .e-grid .e-detailcellwrap,
.dark-mode .e-grid .e-detailindentcelldiv {
    background-color: var(--lcm-navy-card) !important;
    border-color: var(--lcm-navy-border) !important;
    color: #ffffff !important;
}

.dark-mode .e-grid .e-altrow .e-rowcell {
    background-color: #2f3347 !important;
}

.dark-mode .e-grid .e-row:hover .e-rowcell,
.dark-mode .e-grid .e-row.e-hover .e-rowcell {
    background-color: var(--lcm-navy-hover) !important;
}

.dark-mode .e-grid .e-row.e-selectionbackground .e-rowcell,
.dark-mode .e-grid .e-selectionbackground,
.dark-mode .e-grid td.e-selectionbackground,
.dark-mode .e-grid .e-rowcell.e-selectionbackground,
.dark-mode .e-grid .e-active.e-selectionbackground {
    background-color: rgba(var(--lcm-red-rgb), 0.22) !important;
    color: #ffffff !important;
}

.dark-mode .e-grid .e-groupdroparea {
    background-color: var(--lcm-navy-soft) !important;
    color: #a8adc0 !important;
    border-color: var(--lcm-navy-border) !important;
}

.dark-mode .e-grid .e-icon-filter,
.dark-mode .e-grid .e-icon-filter::before,
.dark-mode .e-grid .e-filtered::before,
.dark-mode .e-grid .e-columnmenu-btn,
.dark-mode .e-grid .e-filtermenudiv::before {
    color: var(--lcm-red) !important;
}

.dark-mode .e-pager,
.dark-mode .e-pager .e-pagercontainer,
.dark-mode .e-pager .e-pagesizes,
.dark-mode .e-pager .e-parentmsgbar {
    background-color: var(--lcm-navy-card) !important;
    color: #ffffff !important;
    border-color: var(--lcm-navy-border) !important;
}

.dark-mode .e-pager .e-numericitem,
.dark-mode .e-pager .e-link,
.dark-mode .e-pager .e-first,
.dark-mode .e-pager .e-prev,
.dark-mode .e-pager .e-next,
.dark-mode .e-pager .e-last {
    color: #ffffff !important;
    background: transparent !important;
}

.dark-mode .e-pager .e-currentitem,
.dark-mode .e-pager .e-numericitem.e-currentitem,
.dark-mode .e-pager .e-numericitem.e-active {
    background: transparent !important;
    border: 1px solid var(--lcm-red) !important;
    color: var(--lcm-red) !important;
}

.dark-mode .e-pager .e-numericitem:hover,
.dark-mode .e-pager .e-link:hover {
    color: var(--lcm-red) !important;
    background: rgba(var(--lcm-red-rgb), 0.12) !important;
}

.dark-mode .e-grid .e-toolbar .e-btn,
.dark-mode .e-grid .e-toolbar .e-tbar-btn .e-tbar-btn-text,
.dark-mode .e-grid .e-toolbar .e-icons,
.dark-mode .e-grid .e-toolbar input,
.dark-mode .e-grid .e-toolbar .e-input {
    color: #ffffff !important;
}

.dark-mode .e-grid .e-toolbar .e-input-group,
.dark-mode .e-grid .e-toolbar .e-input-group .e-input {
    background-color: var(--lcm-navy) !important;
    border-color: var(--lcm-navy-border) !important;
    color: #ffffff !important;
}

.dark-mode .e-dialog,
.dark-mode .e-dialog .e-dlg-header-content,
.dark-mode .e-dialog .e-dlg-content,
.dark-mode .e-dialog .e-footer-content,
.dark-mode .e-excelfilter,
.dark-mode .e-checkboxfilter,
.dark-mode .e-column-menu,
.dark-mode .e-grid-menu,
.dark-mode .e-contextmenu-wrapper ul,
.dark-mode .e-contextmenu-container ul {
    background-color: var(--lcm-navy-soft) !important;
    border-color: var(--lcm-navy-border) !important;
    color: #ffffff !important;
}

.dark-mode .e-dialog .e-dlg-header,
.dark-mode .e-dialog .e-dlg-closeicon-btn .e-btn-icon {
    color: #ffffff !important;
}

.dark-mode .e-checkbox-wrapper .e-frame,
.dark-mode .e-css.e-checkbox-wrapper .e-frame {
    background-color: var(--lcm-navy-card) !important;
    border-color: #6b7088 !important;
}

.dark-mode .e-checkbox-wrapper .e-frame.e-check,
.dark-mode .e-css.e-checkbox-wrapper .e-frame.e-check {
    background-color: var(--lcm-red) !important;
    border-color: var(--lcm-red) !important;
}

.dark-mode .e-gridclipbord,
.dark-mode .e-emptyrow {
    color: #a8adc0 !important;
}

.dark-mode .e-spinner-pane {
    background-color: rgba(41, 44, 60, 0.55) !important;
}

.dark-mode .e-spinner-pane .e-spinner-inner svg circle {
    stroke: var(--lcm-red) !important;
}

/* Scrollbars inside Syncfusion grids (WebKit) */
.dark-mode .e-grid .e-content::-webkit-scrollbar,
.dark-mode .e-grid .e-gridcontent::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.dark-mode .e-grid .e-content::-webkit-scrollbar-thumb,
.dark-mode .e-grid .e-gridcontent::-webkit-scrollbar-thumb {
    background: var(--lcm-navy-hover);
    border-radius: 6px;
}

.dark-mode .e-grid .e-content::-webkit-scrollbar-track,
.dark-mode .e-grid .e-gridcontent::-webkit-scrollbar-track {
    background: var(--lcm-navy);
}
