/* =============================================================================
   MODERN-LAYOUT.CSS  Mesa Mayorista ASM
   Version estructurada con Design Tokens (CSS Custom Properties)
   Mantenimiento: editar SOLO las variables en :root / [data-theme] para
   cambiar colores en toda la aplicacion.
   ============================================================================= */

/* =============================================================================
   1.  DESIGN TOKENS  Paleta y variables globales
   ============================================================================= */
:root {
    /* --- Brand Colors --- */
    --asm-teal:           #1ea6a8;   /* Color principal ASM */
    --asm-teal-dark:      #138385;   /* Hover / pressed state */
    --asm-teal-darker:    #15888a;   /* Alternate hover */
    --asm-teal-light:     rgba(30, 166, 168, 0.15); /* Fondo tint */
    --asm-teal-glow:      rgba(30, 166, 168, 0.3);  /* Box-shadow glow */

    /* --- Navbar Gradient --- */
    --navbar-from:        rgba(30, 166, 168, 1);
    --navbar-to:          rgba(15, 66, 92, 1);

    /* --- Semantic Colors --- */
    --color-danger:       #dc3545;
    --color-danger-dark:  #991b1b;
    --color-success:      #166534;
    --color-warning:      #f59e0b;
    --color-info:         #3b82f6;

    /* --- Light Theme Surfaces --- */
    --light-bg:           #f8f9fa;
    --light-surface:      #ffffff;
    --light-surface-alt:  #fcfcfc;
    --light-border:       #dee2e6;
    --light-border-soft:  #e9ecef;
    --light-text:         #2d3436;
    --light-text-muted:   #6c757d;
    --light-input-bg:     #ffffff;
    --light-input-border: #ced4da;
    --light-disabled-bg:  #f8f9fa;
    --light-disabled-text:#868e96;

    /* --- Dark Theme Surfaces (Slate Palette) --- */
    --dark-bg:            #0f172a;   /* Slate 900  canvas principal */
    --dark-surface:       #1e293b;   /* Slate 800  cards, modals */
    --dark-surface-mid:   rgb(37,52,59); /* Superficie intermedia (fdbc) */
    --dark-surface-deep:  #1a1e23;   /* Sidebar user panel */
    --dark-border:        #334155;   /* Slate 700 */
    --dark-border-soft:   #475569;   /* Slate 600 */
    --dark-text:          #f8fafc;   /* Slate 50 */
    --dark-text-muted:    #94a3b8;   /* Slate 400 */
    --dark-text-subtle:   #cbd5e1;   /* Slate 300 */
    --dark-input-bg:      #334155;
    --dark-input-border:  #475569;
    --dark-disabled-bg:   #0f172a;
    --dark-disabled-text: #64748b;

    /* --- Typography --- */
    --font-ui:    "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    --font-table: "Helvetica Neue", Helvetica, Arial, sans-serif;

    /* --- Spacing & Shape --- */
    --radius-sm:   4px;
    --radius-md:   6px;
    --radius-lg:   8px;
    --radius-xl:   12px;
    --radius-pill: 50px;

    /* --- Shadows --- */
    --shadow-sm:   0 2px 4px rgba(0,0,0,0.08);
    --shadow-md:   0 4px 15px rgba(0,0,0,0.12);
    --shadow-lg:   0 10px 25px rgba(0,0,0,0.2);
    --shadow-dark: 0 10px 25px rgba(0,0,0,0.4);

    /* --- Transitions --- */
    --transition-fast:   all 0.15s ease;
    --transition-base:   all 0.2s ease;
    --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);

    /* --- Reusable SVGs --- */
    --arrow-down-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%231ea6a8' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");

    /* --- Sort Indicator SVGs --- */
    --sort-neutral-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2.5' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M8 9l4-4 4 4M16 15l-4 4-4-4'/%3E%3C/svg%3E");
    --sort-asc-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2.5' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M4.5 15.75l7.5-7.5 7.5 7.5'/%3E%3C/svg%3E");
    --sort-desc-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2.5' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");

    /* --- Thead Dark --- */
    --thead-dark-bg: #162230;
    --thead-dark-border: 2px solid rgba(30, 166, 168, 0.35);
}

/* =============================================================================
   2.  ESTRUCTURA & LAYOUT
   ============================================================================= */

/* Prevent horizontal page scroll  individual containers (.table-wrapper)
   handle their own overflow-x: auto for wide tables. */
html, body {
    overflow-x: hidden;
}

/* Global Font Override for Premium Components & All children */
body.login-page,
body.login-page *:not(.fa):not(.fas):not(.far):not(.fal):not(.fab),
.selection-page-wrapper,
.selection-page-wrapper *:not(.fa):not(.fas):not(.far):not(.fal):not(.fab),
.custom-user-panel,
.custom-user-panel *:not(.fa):not(.fas):not(.far):not(.fal):not(.fab),
.premium-card-dialog,
.premium-card-dialog *:not(.fa):not(.fas):not(.far):not(.fal):not(.fab),
.premium-input,
.premium-select,
.section-label,
.btn-logout-premium,
.blue-btn,
.app-dashboard-top-nav-bar,
.app-dashboard-top-nav-bar *:not(.fa):not(.fas):not(.far):not(.fal):not(.fab) {
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif !important;
}

/* Navbar  Premium Glassmorphism Header */
.app-dashboard-top-nav-bar {
    display: flex !important;
    box-sizing: border-box !important; /* Fix width overflow */
    align-items: center !important;
    justify-content: space-between !important;
    background: linear-gradient(135deg, rgba(30, 166, 168, 0.95) 0%, rgba(20, 120, 140, 0.97) 40%, rgba(15, 66, 92, 0.98) 100%) !important;
    backdrop-filter: blur(12px) saturate(1.4);
    -webkit-backdrop-filter: blur(12px) saturate(1.4);
    color: #fff;
    height: 56px !important;
    padding: 0 1.25rem;
    z-index: 1030;
    border-bottom: none !important;
    width: 100%;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.18), 0 1px 3px rgba(0, 0, 0, 0.12);
    position: relative;
}

/* Teal accent line at the bottom of the header */
.app-dashboard-top-nav-bar::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(to right, #1ea6a8, #2dd4bf, #1ea6a8);
    opacity: 0.8;
}

.app-dashboard-top-nav-bar>div:first-child {
    display: flex;
    align-items: center;
}

/* Logo with hover glow */
.app-dashboard-logo img {
    height: 38px;
    margin-right: 14px;
    transition: all 0.3s ease;
    filter: drop-shadow(0 0 0px transparent);
}

.app-dashboard-logo:hover img {
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.4));
    transform: scale(1.04);
}

.app-dashboard-sidebar-close-button {
    background: none !important;
    border: none !important;
    padding: 4px !important;
    cursor: pointer;
    margin-left: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0.65;
    transition: opacity 0.2s ease;
}

.app-dashboard-sidebar-close-button:hover {
    opacity: 1;
}

.app-dashboard-sidebar-close-button img {
    height: 16px !important;
    width: 16px !important;
    filter: none !important;
}

/* User area  clean subtle style */
#myNavMenu {
    display: inline-flex !important;
    align-items: center !important;
}

#myNavMenu #userNavbar {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px;
    background: transparent !important;
    border: none !important;
    padding: 6px 4px !important;
    transition: opacity 0.2s ease !important;
    cursor: pointer;
    opacity: 0.9;
}

#myNavMenu #userNavbar:hover {
    opacity: 1 !important;
}

#myNavMenu #userNavbar .fa-user-tie {
    font-size: 1rem;
    opacity: 0.85;
}

#myNavMenu #userNavbar .nav-items {
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* User Panel (Premium Custom Sidebar) */
.custom-user-panel {
    position: fixed;
    top: 0;
    right: -350px;
    width: 320px;
    height: 100vh;
    background: #1a1e23;
    box-shadow: -5px 0 25px rgba(0, 0, 0, 0.5);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    z-index: 2100;
    color: #e1e1e1;
    display: flex;
    flex-direction: column;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

/* Sidebar Theme Overrides */
.selection-light .custom-user-panel {
    background: #ffffff;
    color: #2d3436;
    box-shadow: -5px 0 25px rgba(0, 0, 0, 0.08);
}

.selection-light .custom-user-panel .panel-header {
    background: #ffffff;
    border-bottom: 1px solid #e9ecef;
}

.selection-light .custom-user-panel .close-panel-btn {
    color: #636e72 !important;
}

.selection-light .custom-user-panel .close-panel-btn:hover {
    background: rgba(0, 0, 0, 0.05) !important;
    color: #000 !important;
}

.selection-light .custom-user-panel .panel-avatar-section {
    background: linear-gradient(135deg, rgba(30,166,168,0.06) 0%, rgba(15,66,92,0.04) 100%);
}

.selection-light .custom-user-panel .panel-avatar {
    background: var(--asm-teal);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(30, 166, 168, 0.3);
}

.selection-light .custom-user-panel .panel-username {
    color: #2d3436;
}

.selection-light .custom-user-panel .panel-card {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
}

.selection-light .custom-user-panel .theme-switch-container,
.selection-light .custom-user-panel .default-app-container {
    background: transparent;
    border: none;
}

.selection-light .custom-user-panel .default-app-container {
    border-top: 1px solid #e9ecef !important;
}

.selection-light .custom-user-panel .theme-text {
    color: #495057;
}

.selection-light .custom-user-panel select {
    background-color: #ffffff !important;
    border: 1px solid #ced4da !important;
    color: #2d3436 !important;
}

.selection-light .custom-user-panel select option {
    background-color: #ffffff !important;
    color: #333 !important;
}

.selection-light .custom-user-panel .panel-footer-actions {
    border-top: none !important;
}

.selection-light .custom-user-panel .btn-logout-premium {
    border-color: #be123c !important;
    color: #be123c !important;
}

.selection-light .custom-user-panel .btn-logout-premium:hover {
    color: #be123c !important;
}

.custom-user-panel.open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    right: 0;
}

.custom-user-panel .panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(255, 255, 255, 0.03);
    padding: 20px 25px;
    border-bottom: 2px solid #1ea6a8;
    /* Added highlight border */
}

/* Close Button refinement */
.close-panel-btn {
    background: transparent !important;
    border: none !important;
    color: #adb5bd !important;
    font-size: 1.25rem !important;
    cursor: pointer !important;
    width: 36px !important;
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    transition: all 0.2s !important;
    margin-right: -10px !important;
}

.close-panel-btn:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
}

/* Avatar section */
.panel-avatar-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 24px 25px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.panel-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--asm-teal);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 10px;
}

.panel-username {
    font-size: 0.9rem;
    font-weight: 600;
    color: #e1e1e1;
    line-height: 1.2;
}

.panel-equipo {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--asm-teal);
    margin-top: 1rem;
    line-height: 1.2;
    letter-spacing: 0.3px;
}

/* Panel card wrapper */
.panel-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 12px 14px;
}

.custom-user-panel .panel-body {
    padding: 25px !important;
    flex-grow: 1;
}

.custom-user-panel .panel-section {
    margin-bottom: 24px !important;
}

.custom-user-panel .section-label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif !important;
    text-transform: uppercase !important;
    color: #1ea6a8 !important;
    margin-bottom: 15px !important;
}

/* Sidebar Dropdown (Select) Refinement */
.custom-user-panel select {
    width: 100% !important;
    background-color: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #fff !important;
    padding: 0 35px 0 15px !important;
    /* Adjusted vertical padding to 0 */
    border-radius: 8px !important;
    height: 46px !important;
    font-size: 14px !important;
    line-height: 44px !important;
    /* Matches height roughly for centering */
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: var(--arrow-down-svg) !important;
    background-repeat: no-repeat !important;
    background-position: right 15px center !important;
    transition: all 0.2s ease !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

.custom-user-panel select:focus {
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 2px rgba(30, 166, 168, 0.2) !important;
    outline: none !important;
}

.custom-user-panel select option {
    background-color: #1a1e23 !important;
    color: #fff !important;
    padding: 10px !important;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif !important;
}

/* Selection Page Styles (Fallback for when modal behavior fails) */
.selection-page-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 9999 !important;
    transition: background 0.3s ease;
}

.selection-page-wrapper.selection-dark,
.selection-dark .selection-page-wrapper {
    background: linear-gradient(145deg, #050f1e 0%, #0a1628 35%, #081c1c 100%) !important;
}

.selection-page-wrapper.selection-light,
.selection-light .selection-page-wrapper {
    background: linear-gradient(145deg, #f8fdfd 0%, #e4f5f5 55%, #c2e8e9 100%) !important;
}

.premium-card-dialog {
    border-radius: 12px !important;
    width: 100% !important;
    max-width: 450px !important;
    overflow: hidden !important;
    transition: all 0.3s ease;
}

.selection-dark .premium-card-dialog,
.selection-page-wrapper.selection-dark .premium-card-dialog {
    background: rgb(37, 52, 59) !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.4) !important;
    color: #fff !important;
    border: 1px solid #1a262b !important;
}

.selection-light .premium-card-dialog,
.selection-page-wrapper.selection-light .premium-card-dialog {
    background: #ffffff !important;
    box-shadow: 0 15px 45px rgba(0, 0, 0, 0.08) !important;
    color: #2d3436 !important;
    border: 1px solid rgba(0, 0, 0, 0.05) !important;
}

.premium-card-dialog .card-header {
    padding: 25px !important;
    display: flex !important;
    align-items: center !important;
}

.selection-dark .premium-card-dialog .card-header,
.selection-page-wrapper.selection-dark .premium-card-dialog .card-header {
    background: rgba(255, 255, 255, 0.02) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.selection-light .premium-card-dialog .card-header,
.selection-page-wrapper.selection-light .premium-card-dialog .card-header {
    background: #fcfcfc !important;
    border-bottom: 1px solid #f1f1f1 !important;
}

.premium-card-dialog .card-body {
    padding: 25px 30px !important;
}

.premium-card-dialog .card-footer {
    padding: 20px 35px !important;
    display: flex !important;
    justify-content: center !important;
}

.selection-dark .premium-card-dialog .card-footer {
    background: rgba(0, 0, 0, 0.15) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.05) !important;
}

.selection-light .premium-card-dialog .card-footer {
    background: #f8f9fa !important;
    border-top: 1px solid #eee !important;
}

/* Custom styled select for better UI */
.premium-select,
.premium-input {
    width: 100% !important;
    padding: 8px 15px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    outline: none !important;
    transition: all 0.2s ease !important;
    height: 46px !important;
}

.premium-select {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
}

.selection-dark .premium-select,
.selection-dark .premium-input {
    background-color: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #fff !important;
}

.selection-dark .premium-select {
    background-image: var(--arrow-down-svg) !important;
}

.selection-light .premium-select,
.selection-light .premium-input {
    background-color: #fff !important;
    border: 1px solid #ced4da !important;
    color: #2d3436 !important;
}

.selection-light .premium-select {
    background-image: var(--arrow-down-svg) !important;
}

/* Distinguishable Readonly and Disabled styles */
.selection-dark .form-control:disabled,
.selection-dark .form-control[readonly],
.selection-dark .premium-input:disabled,
.selection-dark .premium-input[readonly],
.selection-dark .premium-select:disabled,
.selection-dark .premium-select[readonly] {
    background-color: rgba(255, 255, 255, 0.05) !important;
    /* Slightly more visible background */
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    /* Subtle border for definition */
    color: #eee !important;
    /* Near-white text for maximum legibility */
    cursor: not-allowed !important;
    opacity: 1;
    font-weight: 500 !important;
}

body.selection-light .form-control:disabled,
body.selection-light .form-control[readonly],
body.selection-light .premium-input:disabled,
body.selection-light .premium-input[readonly],
body.selection-light .premium-select:disabled,
body.selection-light .premium-select[readonly],
.selection-light .form-control:disabled,
.selection-light .form-control[readonly],
.selection-light .premium-input:disabled,
.selection-light .premium-input[readonly],
.selection-light .premium-select:disabled,
.selection-light .premium-select[readonly] {
    background-color: #cdcdcd !important;
    border-color: #b5b5b5 !important;
    color: #4a4a4a !important;
    cursor: not-allowed !important;
}

.selection-dark .premium-select option {
    background: #1a1e23;
    color: #fff;
}

.selection-light .premium-select option {
    background: #fff;
    color: #333;
}

/* Premium Search Button styling */
.btn-premium-search {
    background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%) !important;
    /* Vibrant Emerald Green Gradient */
    color: #fff !important;
    padding: 0 20px !important;
    /* Increased padding */
    border: none !important;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-top-right-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.2rem !important;
    /* Slightly larger icon */
    cursor: pointer !important;
    margin-left: -1px !important;
    z-index: 10 !important;
    box-shadow: 0 0 15px rgba(46, 204, 113, 0.4) !important;
    /* Green glow */
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
}

.btn-premium-search:hover {
    background: linear-gradient(135deg, #2ecc71 0%, #2ecc71 100%) !important;
    /* Brighter green on hover */
    box-shadow: 0 5px 20px rgba(46, 204, 113, 0.6) !important;
    transform: translateY(-1px);
}

/* ASM Search Button styling */
.btn-asm-search {
    background-color: var(--asm-teal) !important;
    color: #fff !important;
    padding: 0 10px !important;
    border: 1px solid #1ea6a8 !important;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-top-right-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
    transition: all 0.2s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    font-size: 1.1rem !important;
    cursor: pointer !important;
    margin-left: -1px !important;
    z-index: 10 !important;
    min-width: 44px !important;
}

.btn-asm-search:hover {
    background-color: #178a8c !important;
    border-color: #178a8c !important;
}

.btn-asm-search:disabled,
.btn-asm-search[disabled] {
    background-color: #94a3b8 !important;
    border-color: #94a3b8 !important;
    color: #cbd5e1 !important;
    cursor: not-allowed !important;
    opacity: 0.7 !important;
}

.btn-asm-search:disabled:hover,
.btn-asm-search[disabled]:hover {
    background-color: #94a3b8 !important;
    border-color: #94a3b8 !important;
}

.btn-asm-search i {
    font-size: 16px !important;
}

/* Input pegado al boton de busqueda  quitar radio derecho para formar un solo control */
.form-control:has(+ .btn-asm-search) {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

/* Contenedor flex para input + boton de busqueda (dialogos de seleccion) */
.input-search-group {
    display: flex;
    align-items: stretch;
    width: 100%;
}

.input-search-group .input-search-field {
    flex-grow: 1;
    position: relative;
}

.input-search-group .input-search-field .form-control {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.btn-premium-search i {
    font-size: 18px !important;
    /* Larger icon for better visibility */
}

.custom-select-wrapper {
    margin: 0 !important;
    padding: 0 !important;
}

.custom-select-wrapper select:focus,
.premium-select:focus {
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 2px rgba(30, 166, 168, 0.2) !important;
}

.theme-switch-container,
.default-app-container {
    background: #252a31;
    padding: 8px 15px;
    border-radius: 8px;
    border: 1px solid #3a424d;
    height: 50px;
    display: flex;
    align-items: center;
}

.default-app-container {
    margin-top: 10px;
    padding: 8px 0 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    background: transparent !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
    height: auto !important;
}

.btn-default-app {
    width: 100%;
    background: transparent;
    border: 1px dashed rgba(255, 255, 255, 0.15);
    color: #94a3b8;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-default-app .fa-star { color: #94a3b8; }

.btn-default-app.active {
    border: 1px solid var(--asm-teal);
    color: var(--asm-teal);
    background: rgba(30, 166, 168, 0.08);
}

.btn-default-app.active .fa-star { color: var(--asm-teal); }

/* Light theme */
.selection-light .btn-default-app {
    border-color: #ced4da;
    color: #6c757d;
}

.selection-light .btn-default-app .fa-star { color: #ced4da; }

.selection-light .btn-default-app.active {
    border: 1px solid var(--asm-teal);
    color: var(--asm-teal);
    background: rgba(30, 166, 168, 0.06);
}

.selection-light .btn-default-app.active .fa-star { color: var(--asm-teal); }

/* Fix Bootstrap Switch Alignment and Aesthetics */
.custom-control.custom-switch {
    padding-left: 2.25rem !important;
    margin-bottom: 0 !important;
    display: flex !important;
    align-items: center !important;
    height: 24px !important;
}

.custom-control.custom-switch .custom-control-label {
    cursor: pointer !important;
    line-height: 24px !important;
    padding-top: 0 !important;
}

.custom-control.custom-switch .custom-control-label::before {
    left: -2.25rem !important;
    width: 2rem !important;
    height: 1.15rem !important;
    border-radius: 1rem !important;
    background-color: #3a424d !important;
    border: none !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
}

.custom-control.custom-switch .custom-control-label::after {
    left: calc(-2.25rem + 2px) !important;
    width: calc(1.15rem - 4px) !important;
    height: calc(1.15rem - 4px) !important;
    background-color: #adb5bd !important;
    border-radius: 50% !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    transition: transform .15s ease-in-out, background-color .15s ease-in-out !important;
}

.custom-control-input:checked~.custom-control-label::before {
    background-color: var(--asm-teal) !important;
}

.custom-control-input:checked~.custom-control-label::after {
    transform: translate(0.85rem, -50%) !important;
    background-color: #fff !important;
}

.theme-text {
    font-size: 14px;
    color: #ccc;
    font-weight: 500;
}

/* Universal Premium Buttons */
.btn-asm {
    background-color: var(--asm-teal) !important;
    color: #ffffff !important;
    border: none !important;
    padding: 8px 24px !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
    transition: all 0.2s ease-in-out !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
    cursor: pointer !important;
}



.btn-asm:hover:not(:disabled),
.btn-asm:focus:not(:disabled) {
    background-color: var(--asm-teal-dark) !important;
    /* Darker Teal */
    color: #ffffff !important;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15) !important;
}

.btn-asm:active {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

/* Secondary Universal Premium Button */
.btn-asm.btn-secondary {
    background-color: #f1f5f9 !important;
    color: #475569 !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) !important;
}


.btn-asm.btn-secondary:hover:not(:disabled),
.btn-asm.btn-secondary:focus:not(:disabled) {
    background: linear-gradient(135deg, #475569 0%, #334155 100%) !important;
    color: #ffffff !important;
    border-color: var(--asm-teal) !important;
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.3) !important;
}

/* Disabled states for .btn-asm (primary teal) */
.btn-asm:disabled,
.btn-asm[disabled] {
    background-color: #e2e8f0 !important;
    color: var(--dark-text-muted) !important;
    cursor: not-allowed !important;
    opacity: 0.7 !important;
    box-shadow: none !important;
    transform: none !important;
}

.btn-asm:disabled:hover,
.btn-asm[disabled]:hover {
    background-color: #e2e8f0 !important;
    color: var(--dark-text-muted) !important;
    box-shadow: none !important;
    transform: none !important;
}

.selection-dark .btn-asm:disabled,
.selection-dark .btn-asm[disabled] {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-disabled-text) !important;
}

.selection-dark .btn-asm:disabled:hover,
.selection-dark .btn-asm[disabled]:hover {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-disabled-text) !important;
}

/* Disabled states for .btn-asm.btn-secondary */
.btn-asm.btn-secondary:disabled,
.btn-asm.btn-secondary[disabled] {
    background-color: #e2e8f0 !important;
    color: var(--dark-text-muted) !important;
    border-color: #e2e8f0 !important;
    cursor: not-allowed !important;
    opacity: 0.7 !important;
    box-shadow: none !important;
    transform: none !important;
}

.btn-asm.btn-secondary:disabled:hover,
.btn-asm.btn-secondary[disabled]:hover {
    background-color: #e2e8f0 !important;
    color: var(--dark-text-muted) !important;
    border-color: #e2e8f0 !important;
    box-shadow: none !important;
    transform: none !important;
}

.selection-dark .btn-asm.btn-secondary:disabled,
.selection-dark .btn-asm.btn-secondary[disabled] {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-disabled-text) !important;
    border-color: var(--dark-border) !important;
}

.selection-dark .btn-asm.btn-secondary:disabled:hover,
.selection-dark .btn-asm.btn-secondary[disabled]:hover {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-disabled-text) !important;
    border-color: var(--dark-border) !important;
}

/* --- Dark Mode: DataTable Premium Headers --- */
/* Override style-dark.css `thead { background: #29292f !important }` */
.selection-dark thead,
thead {
    background: var(--thead-dark-bg) !important;
}

/* Shared dark thead styles (tabla-mesa, tabla-asm-moderna, generic .table) */
.selection-dark .tabla-mesa.dataTable thead th,
.selection-dark .table.tabla-mesa thead th,
.selection-dark .table thead th,
.selection-dark .table th,
.selection-dark .tabla-mesa thead th,
.selection-dark .table-vert-scroll #encabezado,
.selection-dark .tabla-asm-moderna thead th,
.selection-dark .tabla-asm-moderna #tblCnf thead th {
    background-color: var(--thead-dark-bg) !important;
    color: var(--dark-text-subtle) !important;
    text-transform: uppercase !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.05em !important;
    font-weight: 700 !important;
    padding: 10px 12px !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: var(--thead-dark-border) !important;
}

/* Sorting icon colors */
.selection-dark .tabla-mesa.dataTable thead th.sorting_asc,
.selection-dark .tabla-mesa.dataTable thead th.sorting_desc {
    background-color: #1a2d3d !important;
    color: var(--asm-teal) !important;
}

.selection-dark .table td {
    color: var(--dark-text) !important;
    border-color: #1e3040 !important;
}

/* Striped row alternation */
.selection-dark .table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(22, 34, 48, 0.5) !important;
}

.selection-dark .table-striped tbody tr:nth-of-type(even) {
    background-color: rgba(15, 23, 42, 0.3) !important;
}

/* Hover row */
.selection-dark .table-hover tbody tr:hover {
    background-color: rgba(30, 166, 168, 0.06) !important;
}

/* Default span color in dark tables */
.selection-dark .table th span,
.selection-dark .table td span {
    color: var(--dark-text) !important;
}

/* Exception: Make text black for contrast on rows with painted status backgrounds */
.selection-dark .table tbody tr[style*="background"] td,
.selection-dark .table tbody tr[style*="background"] td span {
    color: #0f172a !important;
}

.btn-logout-premium {
    width: 100% !important;
    background-color: transparent !important;
    border: 1.5px solid #be123c !important;
    color: #be123c !important;
    padding: 10px 15px !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
    transition: all 0.2s !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.85rem !important;
    height: 44px !important;
    letter-spacing: 0.3px !important;
}

.btn-logout-premium:hover {
    color: #be123c !important;
}

/* Panel Footer Actions */
.panel-footer-actions {
    margin-top: auto !important;
    padding: 25px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.05) !important;
}

/* Backdrop for user panel */
.panel-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.4);
    /* Slightly lighter backdrop */
    display: none;
    z-index: 1045;
    backdrop-filter: blur(2px);
}

.panel-backdrop.show {
    display: block;
}

/* Table layout regression fixes removed to use original design */

/* Global Fix for stray X buttons from legacy modals */
.window_close,
.window_maximize,
.window_restore {
    display: none !important;
    visibility: hidden !important;
}

/* Button black border fix */
button,
.btn,
.blue-btn,
.btn-custom {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

/* """ Disabled action buttons in table rows """ */
a.link-disabled,
a.link-disabled:hover,
a.link-disabled:focus {
    pointer-events: none !important;
    cursor: not-allowed !important;
    background-color: #6b7280 !important;
    opacity: 0.4 !important;
    color: #9ca3af !important;
    box-shadow: none !important;
}

.tabla-mesa .btn[disabled],
.tabla-mesa .btn.disabled,
.tabla-mesa a[disabled] {
    pointer-events: none !important;
    cursor: not-allowed !important;
    background-color: #6b7280 !important;
    opacity: 0.4 !important;
    color: #9ca3af !important;
    box-shadow: none !important;
}

.selection-page-wrapper .blue-btn {
    background-color: var(--asm-teal) !important;
    color: white !important;
    border-radius: 50px !important;
    height: 44px !important;
    padding: 0 35px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    border: none !important;
    box-shadow: 0 4px 15px rgba(30, 166, 168, 0.25) !important;
    transition: background-color 0.2s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-right: 0 !important;
    /* Ensure no right offset */
}

.selection-page-wrapper .blue-btn:hover {
    background-color: #178a8c !important;
    /* Darker teal */
    box-shadow: 0 6px 18px rgba(30, 166, 168, 0.35) !important;
    transform: none !important;
}

.selection-page-wrapper .btn-container {
    display: flex !important;
    justify-content: flex-end !important;
    width: 100% !important;
    margin-top: 25px !important;
    padding-right: 0 !important;
    /* Force flush with content below */
}

/* Login Page Overwrites (Targets both NEW and OLD HTML) */
.login-page .selection-page-wrapper,
.login-page .contact-form,
.login-page .formulario {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100vh !important;
    width: 100vw !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 10 !important;
    background: transparent !important;
}

/* Ensure the background overlay is behind everything */
.login-page::after {
    z-index: -2 !important;
}

/* Force the "Card" look even on old HTML */
.login-page .contact-form {
    background: white !important;
    border-radius: 12px !important;
    box-shadow: 0 15px 45px rgba(0, 0, 0, 0.1) !important;
    padding: 40px !important;
    width: 400px !important;
    height: auto !important;
    transform: none !important;
    /* Remove translate(-50%, -50%) if it exists */
}

.selection-dark .login-page .contact-form {
    background: #1a1e23 !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5) !important;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
}

/* Force logo size */
.login-page .avatar,
.login-page img[src*="favicon.png"] {
    width: 80px !important;
    height: 80px !important;
    border-radius: 50% !important;
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    margin-bottom: 20px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
}

.login-page .premium-card-dialog {
    width: 400px !important;
    max-width: 90vw !important;
}

/* Fix overlaps in old HTML labels */
.login-page .form-floating-label {
    margin-bottom: 25px !important;
    width: 100% !important;
}

.login-page .form-floating-label label {
    margin-top: 5px !important;
    font-size: 14px !important;
    color: #1ea6a8 !important;
}

.login-page .premium-input-wrapper {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
}

.login-page .premium-input-wrapper .icon-prefix {
    position: absolute !important;
    left: 15px !important;
    color: #1ea6a8 !important;
    font-size: 16px !important;
    z-index: 5 !important;
    pointer-events: none !important;
    /* Ensure the icon doesn't block interaction */
}

/* Fix for browser autofill in dark mode */
.selection-dark input:-webkit-autofill,
.selection-dark input:-webkit-autofill:hover,
.selection-dark input:-webkit-autofill:focus,
.selection-dark input:-webkit-autofill:active,
.selection-dark .premium-input:-webkit-autofill,
.selection-dark .premium-input:-webkit-autofill:hover,
.selection-dark .premium-input:-webkit-autofill:focus,
.selection-dark .premium-input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px #1a1e23 inset !important;
    -webkit-text-fill-color: #fff !important;
    background-color: #1a1e23 !important;
    transition: background-color 5000s ease-in-out 0s !important;
    caret-color: #fff !important;
}

.selection-dark .premium-input {
    caret-color: #1ea6a8 !important;
    /* Ensure caret is visible */
}

/* Ensure selection is visible in dark mode */
.selection-dark ::selection {
    background-color: rgba(30, 166, 168, 0.4) !important;
    color: #fff !important;
}

.login-page .premium-input-wrapper .premium-select,
.login-page .premium-input-wrapper .premium-input {
    padding-left: 45px !important;
}

.login-page .blue-btn {
    width: 100% !important;
    margin-top: 10px !important;
}

/* Hide the blue bar if we are in login mode (legacy) */
.login-page .app-dashboard-top-nav-bar {
    display: none !important;
}

/* --- Table Layout Fixes --- */
#robmy .table-wrapper {
    margin: 0 !important;
}


/* --- Validation Styles --- */
.is-invalid-input,
.is-invalid,
.form-control.is-invalid-input,
.form-control.is-invalid,
input.is-invalid-input,
input.is-invalid,
select.is-invalid-input,
select.is-invalid,
textarea.is-invalid-input,
textarea.is-invalid,
input[class].is-invalid-input {   /* Captura inputs sin form-control (number-format, etc.) */
    border: 2px solid #c0392b !important;   /* Rojo profesional, menos agresivo */
    background-color: #fef2f2 !important;   /* Rosa muy suave */
    color: inherit !important;              /* No cambiar color del texto */
    transition: none !important;
}

.selection-dark .is-invalid-input,
.selection-dark .is-invalid,
.selection-dark .form-control.is-invalid-input,
.selection-dark .form-control.is-invalid,
.selection-dark input.is-invalid-input,
.selection-dark input.is-invalid,
.selection-dark select.is-invalid-input,
.selection-dark select.is-invalid,
.selection-dark textarea.is-invalid-input,
.selection-dark textarea.is-invalid {
    border: 2px solid #f87171 !important;           /* Rojo-400 suave para dark */
    background-color: rgba(248, 113, 113, 0.1) !important;
    color: #fff !important;
    transition: none !important;
}

/* Evitar shake/flash animations en estados de validacion */
.is-invalid-input,
.is-invalid,
.form-control.is-invalid-input,
.form-control.is-invalid {
    transition: none !important;
    transition-duration: 0s !important;
    animation: none !important;
    transform: none !important;
}

.form-error {
    display: none;
    width: 100%;
    margin-top: 0.4rem;
    font-size: 0.82em;              /* Un poco mas pequeno  menos alarmante */
    color: #c0392b !important;      /* Mismo rojo moderado */
    font-weight: 600;               /* Menos bold  de 800 a 600 */
}

.selection-dark .form-error,
.selection-dark .form-error.is-visible,
.selection-dark span.form-error,
.selection-dark span.form-error.is-visible {
    color: #ff6b6b !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

.form-error.is-visible {
    display: block !important;
}



/* --- Select Arrow Spacing --- */
select,
select.form-control {
    padding-right: 28px !important;
}

/* --- Form Controls Width Fix --- */
.form-control,
input.form-control,
select.form-control,
textarea.form-control,
input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
textarea {
    max-width: 100% !important;
    /* Force full width regardless of container/site.css overrides */
    width: 100% !important;
}

textarea, textarea.form-control {
    height: auto !important;
    min-height: auto !important;
    resize: vertical;
}

/* --- Lighter Placeholders --- */
input::placeholder {
    color: #aeb5be !important;
    opacity: 1 !important;
    font-weight: 400 !important;
}

#menu {
    transition: width 0.3s ease;
}

#robmy {
    width: calc(100% - 250px) !important;
    float: left;
    height: calc(100vh - 60px);
    overflow: clip;
    /* clip (no hidden): recorta contenido desbordado sin crear scroll container,
       permitiendo que position:fixed de modales hijos funcione correctamente.
       El scroll real lo manejan .table-wrapper y .form-page-scroll */
    padding: 15px 15px 0 15px;
}

/* Override the hardcoded 91vh from main.min.css - it overflows #robmy after win_top2 header */
#robmy>div.row {
    height: calc(100% - 52px) !important;
    overflow-y: clip !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Form pages: scroll en div.row */
#robmy>div.row.form-page-scroll {
    overflow-y: auto !important;
    height: calc(100% - 45px) !important;
}
#robmy>div.row.form-page-scroll .fdbc {
    overflow: visible !important;
    overflow-y: visible !important;
    max-height: none !important;
    height: auto !important;
    padding-bottom: 40px !important;
}

@media (max-width: 1158px) {
    #robmy {
        width: 100% !important;
    }
}

/* #btnAgregar  ver definicion canonica en la seccion "Primary Action Button" mas abajo */

/* --- Table Styles --- */

/* Safely pass flex-grow down the DOM tree  only containers, not content divs */
#robmy .fdbc>div:not(.row):not(.modal),
#robmy .fdbc>div:not(.row):not(.modal)>.page-content-wrapper,
#robmy .fdbc>div>permission,
#robmy .fdbc permission {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
}

/* Content divs inside page-content-wrapper: don't grow, stay compact */
#robmy .page-content-wrapper>div:not(.table-panel-clean) {
    flex: 0 0 auto !important;
}

/* .table-panel: This is the KEY container - it must take the remaining height precisely */
.table-panel {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    width: 100% !important;
    margin: 5px 10px 0 10px !important;
    padding: 0 !important;
    border: none !important;            /* Elimina el groove border de base.css */
    flex: 1 1 auto !important;
    overflow: hidden !important;
}

/* Ensure the top button bar does not stretch */
#robmy .fdbc>div>div:nth-child(1):not([hidden]) {
    display: block !important;
    width: 100% !important;
    flex: 0 0 auto !important;
}

/* Scope main table-wrapper to avoid affecting modals */
#robmy .table-wrapper {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    overflow-x: auto !important;

    /* Flex-grow to fill available space, height:0 forces shrink to fit */
    flex: 1 1 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    overflow-y: auto !important;

    /* border-bottom removed as requested */
}

/* Generic table-wrapper for modals etc */
.table-wrapper {
    margin: 0;
    padding: 0;
    overflow-y: auto;
    overflow-x: auto;
    width: 100%;
}

/* Ensure sticky header stays on top while scrolling */
.table-wrapper .tabla-mesa thead th {
    position: sticky !important;
    top: 0 !important;
    z-index: 10 !important;
    /* Box shadow is used for border instead of border-bottom to avoid scrolling glitches */
    box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1);
}

.tabla-mesa,
.tabla-mesa thead th,
.tabla-mesa tbody td,
.tabla-mesa tbody th,
.tabla-mesa *:not(.fa):not(.fas):not(.far):not(.fal):not(.fab) {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
}

/* Compact table sizing for 1920x1080  all 13 columns visible without scroll */
.tabla-mesa tbody td,
.tabla-mesa thead th {
    font-size: 12px !important;
    padding: 8px 8px !important;
}

.tabla-mesa thead th {
    padding: 8px 8px !important;
}

/* nowrap solo en tablas principales con scroll horizontal, no en tablas embebidas de formularios */
.table-panel-clean .tabla-mesa tbody td,
.table-panel-clean .tabla-mesa thead th,
.table-panel .tabla-mesa tbody td,
.table-panel .tabla-mesa thead th {
    white-space: nowrap !important;
}

/* --- Search and Date Controls Refining --- */
#search-dealticket,
.input-daterange input,
#RegistrosPorPagina {
    height: 38px !important;
    border: 1px solid #ced4da !important;
    border-radius: 6px !important;
    padding: 0.375rem 0.75rem !important;
    font-size: 0.9rem !important;
    color: #495057 !important;
    background-color: #fff !important;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out !important;
    box-sizing: border-box !important;
}

#search-dealticket:focus,
.input-daterange input:focus {
    color: #495057 !important;
    background-color: #fff !important;
    border-color: #80bdff !important;
    outline: 0 !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25) !important;
}

/* Specific Date Range Styling */
.input-daterange.input-group {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 6px !important;
    background-color: #fff !important;
    border: 1px solid #ced4da !important;
    overflow: hidden !important;
}

.input-daterange input {
    border: none !important;
    /* Remove individual borders because the group has it */
    border-radius: 0 !important;
    /* Flat edges to join smoothly */
    text-align: center !important;
    width: 110px !important;
}

/* The separator dash */
.input-daterange .input-group-addon {
    background-color: transparent !important;
    border: none !important;
    color: #6b7280 !important;
    padding: 0 10px !important;
    height: 38px !important;
    display: flex !important;
    align-items: center !important;
    font-size: 1rem !important;
}

/* --- Primary Action Button (Add Item) --- */
#btnAgregar {
    background-color: var(--asm-teal) !important;
    /* ASM Teal */
    color: #ffffff !important;
    border: none !important;
    padding: 8px 18px !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 5px rgba(30, 166, 168, 0.2) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-left: 5px !important;
    margin-top: 0 !important;
    margin-bottom: 8px !important;
    width: fit-content !important;
}


#btnAgregar:hover {
    background-color: var(--asm-teal-darker) !important;
    box-shadow: 0 4px 12px rgba(30, 166, 168, 0.35) !important;
}

#btnAgregar i {
    margin-right: 6px !important;
    font-size: 15px !important;
}

/* --- Professional Pagination (Pill Style) --- */
.container-pagination {
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 2rem 0;
    padding: 0;
    list-style: none;
}

.container-pagination .page-item {
    margin: 0;
}

.container-pagination .page-link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 38px;
    padding: 0 1.25rem !important;
    font-size: 0.9rem;
    font-weight: 500;
    color: #555 !important;
    background-color: #fff !important;
    border: 1px solid #e0e4e8 !important;
    border-radius: 50px !important;
    /* Pill shape */
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none !important;
    min-width: 40px;
}

.container-pagination .page-link:hover {
    color: var(--asm-teal) !important;
    border-color: var(--asm-teal) !important;
    background-color: #f0fafa !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(30, 166, 168, 0.1);
}

/* --- ASM Professional Pagination (Straight Edges) --- */
.asm-pagination-clean {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 25px 0 45px 0 !important;
    gap: 4px !important;
    width: 100% !important;
}

.asm-pagination-clean li {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.asm-pagination-clean .page-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 34px !important;
    padding: 0 16px !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    color: #444 !important;
    background-color: #fff !important;
    border: 1px solid #cdd4dc !important;
    border-radius: 4px !important;
    /* Square/slightly rounded corners */
    transition: all 0.2s ease !important;
    text-decoration: none !important;
    min-width: 40px !important;
}

.asm-pagination-clean .page-link:hover {
    background-color: #f0fafa !important;
    border-color: var(--asm-teal) !important;
    color: #1ea6a8 !important;
}

.asm-pagination-clean .active .page-link {
    background-color: var(--asm-teal) !important;
    /* Matches ASM Teal branding */
    border-color: var(--asm-teal) !important;
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(30, 166, 168, 0.2) !important;
}

.asm-pagination-clean .disabled .page-link {
    background-color: #f8f9fa !important;
    border-color: #e9ecef !important;
    color: #adb5bd !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

.container-pagination .page-item.active .page-link {
    color: #fff !important;
    background-color: var(--asm-teal) !important;
    border-color: var(--asm-teal) !important;
    box-shadow: 0 4px 12px rgba(30, 166, 168, 0.25);
}

.container-pagination .page-item.disabled .page-link {
    color: #adb5bd !important;
    background-color: #f8f9fa !important;
    border-color: #e9ecef !important;
    cursor: not-allowed;
    opacity: 0.7;
}

/* Modern Status Badges */
.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}

/* Ensure centering on list views */
.pagination-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
    margin: 15px 0;
}

/* Full Width Page Headers using Negative Margins across parent padding */
#robmy>.win_top2 {
    margin: -15px -15px 15px -15px !important;
    width: calc(100% + 30px) !important;
    border-radius: 0 !important;
    padding-left: 15px !important;
    box-sizing: border-box !important;
}

/*  win_top2 modernizado  */

/* Ocultar PNG y reemplazar con texto CSS */
.win_top2 > div:first-child img {
    display: none !important;
}

.win_top2 > div:first-child a::before {
    content: "ASM";
    font-family: "Segoe UI", Tahoma, sans-serif;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.5px;
    color: rgba(255, 255, 255, 0.4);
    text-shadow: none;
    vertical-align: middle;
}

/* Mejoras generales al header */
.win_top2 {
    background: linear-gradient(135deg, var(--asm-teal) 0%, var(--asm-teal-dark) 100%) !important;
    text-shadow: none !important;
    height: 36px !important;
    line-height: 1 !important;
    font-size: 14px !important;
    letter-spacing: 0.3px !important;
    display: flex !important;
    align-items: center !important;
}

/* Separador vertical entre ASM y titulo */
.win_top2 > div:first-child {
    display: flex;
    align-items: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
    padding-right: 8px;
    margin-right: 8px;
}

.win_top2 > div:first-child a {
    display: inline-flex;
    align-items: center;
    outline: none;
    text-decoration: none;
}

/* ASM text no reacciona a hover — solo la flecha tiene efecto hover */

/* Icono de navegacion (flecha atras) */
.win_top2 .fa-arrow-alt-circle-left {
    color: white;
    font-size: 14px !important;
    opacity: 0.7;
    transition: opacity 0.2s ease;
    margin-left: 4px;
    vertical-align: middle;
    padding-left: 0.2rem;
}

.win_top2 .fa-arrow-alt-circle-left:hover {
    opacity: 1;
}

/* Titulo de la pagina */
.win_top2 > span {
    font-weight: 600 !important;
    font-size: 14px !important;
}

/* *******************************************************************
   FORM LAYOUT & SPACING STANDARD
   All .fdbc container and form spacing rules consolidated here.
   ******************************************************************* */

/* Main content container */
.fdbc {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 8px !important;
    box-sizing: border-box !important;
    border: none !important;
    border-radius: 0 !important;
    overflow-y: auto !important;
    max-height: none !important;
    height: 100% !important;
    box-shadow: none !important;
}

/* Solo activar flex en fdbc cuando tiene page-content-wrapper (paginas con tabla principal) */
.fdbc:has(.page-content-wrapper) {
    display: flex !important;
    flex-direction: column !important;
}

/* Light mode: fdbc no brillante */
.selection-light .fdbc {
    background-color: transparent !important;
}

/* Vertical separation between form rows */
.fdbc > form > .row,
.fdbc > .row {
    margin-bottom: 0.75rem;
}

/* Horizontal gutters between columns (10px each side = 20px gap) */
.fdbc > form > .row > [class*="col-"],
.fdbc > .row > [class*="col-"] {
    padding-left: 10px;
    padding-right: 10px;
}

/* Labels inside .fdbc: block display + tight spacing to control */
.fdbc label {
    display: block !important;
    margin-bottom: 5px !important;
}

/* Neutralize bootstrap-datepicker's padding:4px on column wrappers */
[class*="col-"].datepicker {
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-radius: 0 !important;
}

/* Custom Dark Scrollbars */
.selection-dark ::-webkit-scrollbar,
.selection-dark .nav-side-menu::-webkit-scrollbar {
    width: 10px;
    height: 10px;
    background-color: transparent;
}

.selection-dark ::-webkit-scrollbar-track,
.selection-dark .nav-side-menu::-webkit-scrollbar-track {
    background-color: rgba(255, 255, 255, 0.04);
}

.selection-dark ::-webkit-scrollbar-thumb,
.selection-dark .nav-side-menu::-webkit-scrollbar-thumb {
    background-color: #4a5d75;
    border-radius: 5px;
}

.selection-dark ::-webkit-scrollbar-thumb:hover,
.selection-dark .nav-side-menu::-webkit-scrollbar-thumb:hover {
    background-color: #5a7190;
}

/* --- Modal Dialog Styling --- */

/* Modal header - clean edge-to-edge teal header */
.modal-header {
    background-color: var(--asm-teal) !important;
    border-bottom: none !important;
    padding: 12px 20px !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

.modal-content {
    border-radius: 8px !important;
    overflow: hidden !important;
    border: none !important;
}



/* Centrado de modales: puro CSS, sin JS */
/* 1. Anula padding-right que Bootstrap JS inyecta al .modal */
.modal {
    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* 2. Flex centering en el dialog */
.modal-dialog-centered {
    display: flex !important;
    align-items: center !important;
    min-height: calc(100% - 1rem) !important;
    width: 100%;
    max-width: 500px;
    margin: auto !important;
}

@media (min-width: 576px) {
    .modal-dialog-centered {
        min-height: calc(100% - 3.5rem) !important;
    }
}

.modal-header .modal-title {
    color: #fff !important;
    font-weight: 600 !important;
    font-size: 1.1rem !important;
}

/* Close button - clearly visible white X */
.modal-header .close,
.modal-header .btn-close {
    color: #fff !important;
    opacity: 1 !important;
    text-shadow: none !important;
    font-size: 1.4rem !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    line-height: 1 !important;
}

.modal-header .close:hover,
.modal-header .btn-close:hover {
    opacity: 0.7 !important;
}

/* Modal body */
.modal-body label {
    font-weight: 600 !important;
}

/* Standard action button for modals (.blue-btn / btn-custom) */
.blue-btn,
button.blue-btn {
    background-color: var(--asm-teal) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 20px !important;
    padding: 10px 24px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    min-width: 120px !important;
}

.blue-btn:hover,
button.blue-btn:hover {
    background-color: var(--asm-teal-darker) !important;
    box-shadow: 0 4px 12px rgba(30, 166, 168, 0.35) !important;
}

.blue-btn:disabled,
button.blue-btn:disabled {
    background-color: #6b7280 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

/* Dark mode modal overrides */
.selection-dark .modal-content {
    background-color: var(--dark-surface) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5) !important;
}

.selection-dark .modal-body {
    background-color: var(--dark-surface) !important;
    color: var(--dark-text-subtle) !important;
}

.selection-dark .modal-body label {
    color: #cbd5e1 !important;
}

.selection-dark .modal-body .form-control,
.selection-dark .modal-body select.form-control {
    background-color: var(--dark-bg) !important;
    color: var(--dark-text-subtle) !important;
    border: 1px solid var(--dark-border) !important;
}

.selection-dark .modal-footer {
    background-color: #1e293b !important;
    border-top: none !important;
}

/* ---  Premium Dark Mode UX Overrides (Slate Palette)  --- */
/* Alerts & Notifications - Enhanced for Dark Mode contrast */
.selection-dark .alert {
    background-color: #1e293b !important;
    /* Dark Slate background */
    border: 1px solid var(--dark-border) !important;
    color: var(--dark-text) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3) !important;
}

.selection-dark .alert-danger {
    background-color: rgba(153, 27, 27, 0.25) !important;
    /* Dark Red subtle */
    border: 1px solid #ef4444 !important;
    /* Vibrant Red border */
    color: #fecaca !important;
    /* Light Red text */
}

.selection-dark .alert-danger i,
.selection-dark .alert-danger .fas,
.selection-dark .alert-danger .far {
    color: #ef4444 !important;
    /* Strong red for icon */
}

.selection-dark .alert-warning {
    background-color: rgba(146, 64, 14, 0.25) !important;
    border: 1px solid #f59e0b !important;
    color: #fef3c7 !important;
}

.selection-dark .alert-success {
    background-color: rgba(21, 128, 61, 0.25) !important;
    border: 1px solid #22c55e !important;
    color: #dcfce7 !important;
}

.selection-dark .alert-info {
    background-color: rgba(30, 64, 175, 0.25) !important;
    border: 1px solid #3b82f6 !important;
    color: #dbeafe !important;
}

.selection-dark .text-danger {
    color: #fca5a5 !important;
}

.selection-dark .alert span {
    color: inherit !important;
}




/* Base Canvas & Backgrounds */
.selection-dark body,
.selection-dark .app-dashboard-body-content,
.selection-dark .content-wrapper,
.selection-dark .app-dashboard-sidebar .app-dashboard-sidebar-inner {
    background-color: rgb(37, 52, 59) !important;
    /* Custom Slate (Matches fdbc) */
    color: var(--dark-text) !important;
    /* Slate 50 */
}

/* Elevated Surfaces (Cards, Modals, Forms) */
.selection-dark .card,
.selection-dark .modal-content,
.selection-dark .report-container,
.selection-dark .premium-card-dialog {
    background-color: rgb(37, 52, 59) !important;
    border: none !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.4) !important;
    border-radius: 12px !important;
}

.selection-dark .fdbc {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

/* Typography Enhancements */
.selection-dark h1,
.selection-dark h2,
.selection-dark h3,
.selection-dark h4,
.selection-dark h5,
.selection-dark h6,
.selection-dark p,
.selection-dark span:not(.currency-flag):not(.badge):not(.input-group-addon):not([style*="color"]):not(.form-error),
.selection-dark .fdbc .text-center {
    color: var(--dark-text-subtle) !important;
    /* Slate 200 */
}

.selection-dark label,
.selection-dark .form-label,
.selection-dark .text-muted,
.selection-dark .fdbc label,
.selection-dark .container-pagination span,
.selection-dark span.total-registros,
.selection-dark div[style*="text-align: center"]>span {
    color: var(--dark-text-muted) !important;
    /* Slate 400 */
    font-weight: 500 !important;
    font-size: 0.85rem !important;
    margin-bottom: 6px !important;
}

/* Inputs, Selects, and Textareas  exclude disabled/readonly (handled below) */
.selection-dark input.form-control:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-dark select.form-control:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-dark textarea.form-control:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-dark input[type="text"]:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-dark input[type="number"]:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-dark input[type="password"]:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-dark input[type="email"]:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-dark .input-daterange input:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-dark select:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-dark select#RegistrosPorPagina:not(:disabled),
.selection-dark #search-dealticket:not(:disabled):not([readonly]),
.selection-dark textarea:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]) {
    background-color: var(--dark-input-bg) !important;
    /* Slate 700 */
    border: 1px solid var(--dark-input-border) !important;
    /* Slate 600 */
    color: var(--dark-text) !important;
    /* Slate 50 */
    border-radius: 6px !important;
    transition: none !important;
    transition-duration: 0s !important;
    max-width: 100% !important;
}

/* Disabled & Readonly  darker, muted, subtle border
   MUST match specificity of normal input rules above (uses :not() bumps) */
.selection-dark input.form-control:not(.is-invalid-input):not(.is-invalid):disabled,
.selection-dark input.form-control:not(.is-invalid-input):not(.is-invalid)[readonly],
.selection-dark select.form-control:not(.is-invalid-input):not(.is-invalid):disabled,
.selection-dark select.form-control:not(.is-invalid-input):not(.is-invalid)[readonly],
.selection-dark textarea.form-control:not(.is-invalid-input):not(.is-invalid):disabled,
.selection-dark textarea.form-control:not(.is-invalid-input):not(.is-invalid)[readonly],
.selection-dark input[type="text"]:not(.is-invalid-input):not(.is-invalid):disabled,
.selection-dark input[type="text"]:not(.is-invalid-input):not(.is-invalid)[readonly],
.selection-dark input[type="number"]:not(.is-invalid-input):not(.is-invalid):disabled,
.selection-dark input[type="number"]:not(.is-invalid-input):not(.is-invalid)[readonly],
.selection-dark input[type="date"]:disabled,
.selection-dark input[type="date"][readonly],
.selection-dark select:not(.is-invalid-input):not(.is-invalid):disabled,
.selection-dark select:not(.is-invalid-input):not(.is-invalid)[readonly] {
    background-color: #1a2332 !important;
    color: var(--dark-disabled-text) !important;
    border: 1px solid var(--dark-input-border) !important;
    opacity: 0.85 !important;
    cursor: not-allowed !important;
}

.selection-dark input.form-control:not(.is-invalid-input):not(.is-invalid)[readonly],
.selection-dark textarea.form-control:not(.is-invalid-input):not(.is-invalid)[readonly],
.selection-dark input[type="text"]:not(.is-invalid-input):not(.is-invalid)[readonly],
.selection-dark input[type="number"]:not(.is-invalid-input):not(.is-invalid)[readonly],
.selection-dark input[type="date"][readonly] {
    cursor: default !important;
}


.selection-dark input.form-control:focus,
.selection-dark select.form-control:focus,
.selection-dark textarea.form-control:focus,
.selection-dark input[type="text"]:focus,
.selection-dark .input-daterange input:focus,
.selection-dark #search-dealticket:focus,
.selection-dark select:focus {
    background-color: var(--dark-input-bg) !important;
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 3px rgba(30, 166, 168, 0.25) !important;
    outline: none !important;
}

.selection-dark input::placeholder,
.selection-dark textarea::placeholder {
    color: var(--dark-text-muted) !important;
}

.selection-dark .input-group-addon {
    background-color: #1e293b !important;   /* Fondo oscuro coherente con dark theme */
    border: 1px solid var(--dark-border) !important;   /* Borde sutil */
    border-radius: 6px !important;
    color: var(--dark-disabled-text) !important;
}

/* =============================================================================
   LIGHT THEME  Inputs, Selects, Labels, Textareas
   ============================================================================= */

/* Labels mas definidos (actualmente heredan color muy claro de Bootstrap) */
.selection-light label,
.selection-light .control-label,
.selection-light .dt-filter-label {
    color: #374151 !important;        /* Gray-700  legible sin ser agresivo */
    font-weight: 600;
}

/* Inputs y Selects: borde mas perceptible para buena UX */
/* :not(.is-invalid-input):not(.is-invalid) evita sobreescribir el borde rojo de validacion */
/* :not(:disabled):not([readonly]) evita pisar los estilos del estado deshabilitado          */
.selection-light input.form-control:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-light select.form-control:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-light textarea.form-control:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-light input[type="text"]:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-light input[type="number"]:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-light input[type="password"]:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-light input[type="email"]:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-light .input-daterange input:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-light select:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]),
.selection-light textarea:not(.is-invalid-input):not(.is-invalid):not(:disabled):not([readonly]) {
    background-color: #ffffff !important;
    border: 1px solid #94a3b8 !important;   /* Slate-400  visible pero elegante */
    color: #1e293b !important;              /* Slate-800  texto oscuro legible */
    border-radius: 6px !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

/* Focus state: anillo teal sutil coherente con brand */
.selection-light input.form-control:focus,
.selection-light select.form-control:focus,
.selection-light textarea.form-control:focus,
.selection-light input[type="text"]:focus,
.selection-light input[type="number"]:focus,
.selection-light input[type="password"]:focus,
.selection-light input[type="email"]:focus,
.selection-light .input-daterange input:focus,
.selection-light select:focus,
.selection-light textarea:focus {
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 3px rgba(30, 166, 168, 0.15) !important;
    outline: none !important;
}

/* Placeholder visible pero discreto */
.selection-light input::placeholder,
.selection-light textarea::placeholder {
    color: var(--dark-text-muted) !important;  /* Slate-400 */
}

/* Inputs deshabilitados en light  gris clarito sin desaparecer */
.selection-light input.form-control:disabled,
.selection-light input.form-control[readonly],
.selection-light input[type="text"]:disabled,
.selection-light input[type="text"][readonly],
.selection-light input[type="number"]:disabled,
.selection-light input[type="number"][readonly],
.selection-light input[type="password"]:disabled,
.selection-light input[type="password"][readonly],
.selection-light input[type="email"]:disabled,
.selection-light input[type="email"][readonly],
.selection-light input[type="date"]:disabled,
.selection-light input[type="date"][readonly],
.selection-light input[type="tel"]:disabled,
.selection-light input[type="tel"][readonly],
.selection-light .input-daterange input:disabled,
.selection-light .input-daterange input[readonly],
.selection-light select.form-control:disabled,
.selection-light select.form-control[readonly],
.selection-light select:disabled,
.selection-light textarea.form-control:disabled,
.selection-light textarea.form-control[readonly],
.selection-light textarea:disabled,
.selection-light textarea[readonly] {
    background-color: #dee2e6 !important;   /* Gris equilibrado (Bootstrap Gray-300) */
    border-color: #c4c9d0 !important;
    color: #495057 !important;
    cursor: not-allowed !important;
    opacity: 1 !important;                  /* Evitar opacidad fantasma de Bootstrap */
}

/* input-group addon (iconos de calendario, etc.) */
.selection-light .input-group-addon {
    background-color: #f1f5f9 !important;   /* Slate-100  suave y coherente */
    border: 1px solid #cbd5e1 !important;   /* Slate-300 */
    border-radius: 6px !important;
    color: var(--dark-disabled-text) !important;
}

/* =============================================================================
   LIGHT THEME  Tabla Mesa
   ============================================================================= */
.selection-light .tabla-mesa {
    color: var(--light-text) !important;
    background-color: var(--light-surface) !important;
    border-collapse: collapse !important;
}

.selection-light .tabla-mesa thead th,
.selection-light .table-vert-scroll #encabezado {
    background-color: var(--asm-teal) !important;      /* Header teal brand */
    color: #ffffff !important;
    text-transform: uppercase !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.5px !important;
    font-weight: 700 !important;
    padding: 0.875rem 1rem !important;
    border: none !important;
    border-bottom: 2px solid var(--asm-teal-dark) !important;
}

/* Links de ordenamiento en headers */
.selection-light .tabla-mesa thead th a {
    color: rgba(255, 255, 255, 0.9) !important;
    text-decoration: none !important;
}

.selection-light .tabla-mesa thead th a:hover {
    color: #ffffff !important;
    text-decoration: underline !important;
}

/* Filas del body — :not([style*="background"]) preserva colores de estado inline */
.selection-light .tabla-mesa tbody tr:not([style*="background"]) {
    background-color: var(--light-surface) !important;
    transition: background-color 0.15s ease !important;
}

.selection-light .tabla-mesa tbody tr:not([style*="background"]):nth-child(even) {
    background-color: #f1f5f9 !important;              /* Slate-100  zebra visible */
}

.selection-light .tabla-mesa tbody tr:not(.selected):not(.Sltd):not([style*="background"]):hover td {
    background-color: rgba(30, 166, 168, 0.07) !important; /* Tint teal on hover */
}

.selection-light .tabla-mesa tbody td {
    color: var(--light-text) !important;               /* #2d3436  texto oscuro legible */
    font-weight: 400 !important;
    padding: 8px 8px !important;
    vertical-align: middle !important;
    border-top: 1px solid var(--light-border) !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
}

/* Spans dentro de celdas */
.selection-light .tabla-mesa tbody td span {
    color: var(--light-text) !important;
}

/* Filas con background pintado desde DB  mantener legibilidad */
.selection-light .tabla-mesa tbody tr[style*="background"] td,
.selection-light .tabla-mesa tbody tr[style*="background"] td span {
    color: #1a1a1a !important;
}

/* Botones de accion dentro de celdas */
.selection-light .tabla-mesa tbody td .btn {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 5px 8px !important;
    transition: all 0.2s ease !important;
    border-radius: 6px !important;
    margin: 0 2px !important;
}

.selection-light .tabla-mesa tbody td .btn i {
    color: var(--light-text-muted) !important;
    font-size: 1rem !important;
    transition: color 0.2s ease !important;
}

.selection-light .tabla-mesa tbody td .btn:hover {
    background-color: var(--asm-teal-light) !important;
}

.selection-light .tabla-mesa tbody td .btn:hover i {
    color: var(--asm-teal-dark) !important;
}

/* Light theme  selected row (Sltd class & DataTables .selected) */
.selection-light .Sltd,
.selection-light .tabla-mesa tbody tr.Sltd,
.selection-light .tabla-mesa tbody tr.Sltd td,
.selection-light .tabla-mesa tbody tr.selected,
.selection-light .tabla-mesa tbody tr.selected td {
    background-color: rgba(30, 166, 168, 0.14) !important;
    border-left: 3px solid var(--asm-teal) !important;
    color: #0f172a !important;
}

.selection-light .tabla-mesa tbody tr.selected:hover td,
.selection-light .tabla-mesa tbody tr.Sltd:hover td {
    background-color: rgba(30, 166, 168, 0.20) !important;
}

/* =============================================================================
   DARK THEME  Generic Message Dialog
   ============================================================================= */
.selection-dark #generic-dialog .modal-content {
    background-color: #1e293b;
    border: 1px solid #334155;
}

.selection-dark #generic-dialog .modal-body {
    color: #f8fafc;
}

.selection-dark #generic-dialog .modal-footer {
    border-top: none;
}

/* =============================================================================
   DARK THEME  Tabla Mesa
   ============================================================================= */
/* Table Enhancements */
.selection-dark .tabla-mesa {
    color: var(--dark-text) !important;
    border: none !important;                /* Quita el borde blanco de Bootstrap */
}

/* DataTables row background overrides  evita filas blancas en dark mode */
/* :not([style*="background"]) preserva los colores de estado inline del servidor */
.selection-dark .tabla-mesa tbody tr:not([style*="background"]) {
    background-color: var(--dark-surface, #1e293b) !important;
}
.selection-dark .tabla-mesa tbody tr:not([style*="background"]):nth-child(even),
.selection-dark .tabla-mesa tbody tr:not([style*="background"]).even {
    background-color: var(--dark-bg) !important; /* Slate 900  contraste visible vs odd #1e293b */
}
.selection-dark .tabla-mesa tbody tr:not([style*="background"]):nth-child(odd),
.selection-dark .tabla-mesa tbody tr:not([style*="background"]).odd {
    background-color: var(--dark-surface, #1e293b) !important;
}
.selection-dark .tabla-mesa tbody tr:not([style*="background"]):hover {
    background-color: rgba(30, 166, 168, 0.12) !important; /* Teal hint on hover */
}

.selection-dark .table-wrapper,
.selection-dark #robmy .table-wrapper {
    border: none !important;
    outline: none !important;
}

/* thead dark styles consolidated in section 2 above */

.selection-dark .tabla-mesa thead th a {
    color: var(--dark-text-subtle) !important;
}

/* Dim the ultra-bright colors coming straight from the DB for table rows */
.selection-dark .tabla-mesa tbody tr[style*="background"] {
    filter: brightness(0.9) contrast(1.1) saturate(0.95);
    border-bottom: 1px solid #1e293b !important;
}

.selection-dark .tabla-mesa tbody tr[style*="background"]:hover {
    filter: brightness(0.75) contrast(1.3) saturate(0.9);
}

/* Texto negro en filas con bgcolor del DB  mejor contraste sobre colores claros */
.selection-dark .tabla-mesa tbody tr[style*="background"] td {
    color: #0f172a !important;
}

.selection-dark .tabla-mesa tbody td {
    color: var(--dark-text) !important; /* Slate 50  texto claro sobre fondo oscuro */
    font-weight: 400 !important;
    padding: 8px 8px !important;
    vertical-align: middle !important;
    border-top: 1px solid #334155 !important; /* Slate 700  separador sutil entre filas */
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
}

.selection-dark .tabla-mesa tbody td .btn {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 6px 8px !important;
    transition: all 0.2s ease !important;
    border-radius: 6px !important;
    margin: 0 2px !important;
}

.selection-dark .tabla-mesa tbody td .btn i {
    color: #475569 !important;
    /* Muted Dark Slate for contrast on colored rows */
    font-size: 1.1rem !important;
    transition: color 0.2s ease !important;
}

.selection-dark .tabla-mesa tbody td .btn:hover {
    background-color: rgba(30, 166, 168, 0.15) !important;
    /* Soft Teal highlight */
}

.selection-dark .tabla-mesa tbody td .btn:hover i {
    color: #138385 !important;
    /* Dark Teal on hover */
}

/* Pagination Controls — Dark (consolidated) */
.selection-dark .asm-pagination-clean .page-link,
.selection-dark .container-pagination .page-link,
.selection-dark .tabla-asm-moderna .dataTables_paginate .pagination li.paginate_button a {
    background-color: var(--dark-surface) !important;
    border-color: var(--dark-border) !important;
    color: #cbd5e1 !important;
    font-weight: 600 !important;
    transition: all 0.2s ease !important;
}

.selection-dark .asm-pagination-clean .page-link:hover,
.selection-dark .container-pagination .page-link:hover,
.selection-dark .tabla-asm-moderna .dataTables_paginate .pagination li.paginate_button:hover a {
    background-color: var(--dark-input-bg) !important;
    color: var(--asm-teal) !important;
    border-color: var(--dark-border-soft) !important;
}

.selection-dark .asm-pagination-clean .active .page-link,
.selection-dark .container-pagination .active .page-link,
.selection-dark .tabla-asm-moderna .dataTables_paginate .pagination li.paginate_button.active a {
    background-color: var(--asm-teal) !important;
    border-color: var(--asm-teal) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 10px rgba(30, 166, 168, 0.3) !important;
}

.selection-dark .asm-pagination-clean .disabled .page-link,
.selection-dark .container-pagination .disabled .page-link,
.selection-dark .tabla-asm-moderna .dataTables_paginate .pagination li.paginate_button.disabled a {
    background-color: var(--dark-bg) !important;
    border-color: var(--dark-surface) !important;
    color: var(--dark-border-soft) !important;
}

/* Page header bar */
.selection-dark .win_top2 {
    background: linear-gradient(135deg, #162230 0%, #0f172a 100%) !important;
    border-bottom: 1px solid rgba(30, 166, 168, 0.3) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
}

.selection-dark .win_top2 > div:first-child a::before {
    color: rgba(30, 166, 168, 0.5);
}

.selection-dark .win_top2 > div:first-child a:hover::before {
    color: var(--asm-teal);
}

.selection-dark .win_top2 > div:first-child {
    border-right-color: rgba(30, 166, 168, 0.2);
}

/* Tool Overrides Excel */
.selection-dark a#exceldownload {
    color: #4ade80 !important;
    transition: color 0.2s ease;
}

.selection-dark a#exceldownload:hover {
    color: #22c55e !important;
}

/* Dark Mode Premium Buttons */
.selection-dark .btn-asm {
    background-color: var(--asm-teal-dark) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

.selection-dark .btn-asm:hover {
    background-color: var(--asm-teal) !important;
    color: #ffffff !important;
}



.selection-dark .btn-asm.btn-secondary {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-text-subtle) !important;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2) !important;
    border: none !important;
}

.selection-dark .btn-asm.btn-secondary:hover {
    background-color: #475569 !important;
    color: #ffffff !important;
}



/* Base Bootstrap Button modifications for Dark Mode */
.selection-dark .btn-outline-secondary,
.selection-dark .input-group-append .btn-outline-secondary {
    color: var(--dark-text-muted) !important;
    border-color: var(--dark-input-border) !important;
    background-color: #1e293b !important;
}

.selection-dark .btn-outline-secondary:hover,
.selection-dark .input-group-append .btn-outline-secondary:hover,
.selection-dark .input-group-append .btn-outline-secondary:focus {
    color: var(--dark-text-subtle) !important;
    background-color: var(--dark-input-bg) !important;
    border-color: var(--asm-teal) !important;
}


/* ===== ACCIONES column: override status row background on last td ===== */
.selection-dark .tabla-mesa tbody tr[style*="background"] td:last-child,
.selection-dark .tabla-mesa tbody tr[style*="background"] td.no-status-bg {
    background-color: var(--dark-surface) !important;
}
.selection-light .tabla-mesa tbody tr[style*="background"] td:last-child,
.selection-light .tabla-mesa tbody tr[style*="background"] td.no-status-bg {
    background-color: var(--light-surface) !important;
}

/* --- Visible scrollbars for table containers (override style-light.css global hide) --- */
.table-wrapper::-webkit-scrollbar,
.tabla-asm-moderna::-webkit-scrollbar,
.dataTables_wrapper::-webkit-scrollbar,
.dataTables_scrollBody::-webkit-scrollbar {
    all: initial !important;
    height: 8px !important;
    width: 8px !important;
    display: block !important;
    background-color: #f1f5f9 !important;
}

.table-wrapper::-webkit-scrollbar-track,
.tabla-asm-moderna::-webkit-scrollbar-track,
.dataTables_wrapper::-webkit-scrollbar-track,
.dataTables_scrollBody::-webkit-scrollbar-track {
    background: #f1f5f9 !important;
    border-radius: 4px !important;
}

.table-wrapper::-webkit-scrollbar-thumb,
.tabla-asm-moderna::-webkit-scrollbar-thumb,
.dataTables_wrapper::-webkit-scrollbar-thumb,
.dataTables_scrollBody::-webkit-scrollbar-thumb {
    background: #94a3b8 !important;
    border-radius: 4px !important;
    min-height: 30px !important;
}

.table-wrapper::-webkit-scrollbar-thumb:hover,
.tabla-asm-moderna::-webkit-scrollbar-thumb:hover,
.dataTables_wrapper::-webkit-scrollbar-thumb:hover,
.dataTables_scrollBody::-webkit-scrollbar-thumb:hover {
    background: #64748b !important;
}

/* --- Tabla ASM Moderna (Usada en Ejecutivos y otros) --- */
.tabla-asm-moderna {
    border-bottom: none !important;
    width: 100% !important;
    min-width: 0;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

/* Override DataTables inline styles and dataTables.bootstrap4.css */
.tabla-asm-moderna,
.tabla-asm-moderna .dataTables_wrapper,
.tabla-asm-moderna .dataTables_wrapper > .row,
.tabla-asm-moderna .dataTables_wrapper > .row > [class*="col-"],
.tabla-asm-moderna table.dataTable,
.tabla-asm-moderna .dataTables_scroll,
.tabla-asm-moderna .dataTables_scrollHead,
.tabla-asm-moderna .dataTables_scrollBody {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.tabla-asm-moderna table.dataTable {
    table-layout: fixed !important;
}

.tabla-asm-moderna table.dataTable td,
.tabla-asm-moderna table.dataTable th {
    box-sizing: border-box !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* Hide the cloned thead inside scrollBody (scrollX duplicates it) */
.dataTables_scrollBody thead {
    display: none !important;
}

/* DataTables wrapper  let it grow to table width;
   .tabla-asm-moderna (parent) handles scroll via overflow-x: auto */
.tabla-asm-moderna .dataTables_wrapper {
    box-sizing: border-box !important;
}

.tabla-asm-moderna .dataTables_wrapper .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.tabla-asm-moderna .dataTables_wrapper .row > [class^="col-"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* DataTables table col  this div directly contains the <table>.
   overflow-x: auto here guarantees a scrollbar right next to the table. */
.tabla-asm-moderna .dataTables_wrapper > .row:nth-of-type(2) > [class^="col-"] {
    overflow-x: auto !important;
}

/* Scrollbar on the DataTables table col */
.tabla-asm-moderna .dataTables_wrapper > .row:nth-of-type(2) > [class^="col-"]::-webkit-scrollbar {
    all: initial !important;
    height: 8px !important;
    display: block !important;
    background-color: #f1f5f9 !important;
}

.tabla-asm-moderna .dataTables_wrapper > .row:nth-of-type(2) > [class^="col-"]::-webkit-scrollbar-track {
    background: #f1f5f9 !important;
    border-radius: 4px !important;
}

.tabla-asm-moderna .dataTables_wrapper > .row:nth-of-type(2) > [class^="col-"]::-webkit-scrollbar-thumb {
    background: #94a3b8 !important;
    border-radius: 4px !important;
}

.tabla-asm-moderna .dataTables_wrapper > .row:nth-of-type(2) > [class^="col-"]::-webkit-scrollbar-thumb:hover {
    background: #64748b !important;
}

/* Force info+paginate bottom row to center */
.tabla-asm-moderna .dataTables_wrapper > .row:last-child > [class*="col-"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    text-align: center !important;
    float: none !important;
}

.tabla-asm-moderna table,
.tabla-asm-moderna #tblCnf {
    width: 100% !important;
    min-width: 1200px;
    border-collapse: collapse !important;
    margin: 0 !important;
}

.tabla-asm-moderna table th,
.tabla-asm-moderna table td,
.tabla-asm-moderna #tblCnf th,
.tabla-asm-moderna #tblCnf td {
    vertical-align: middle !important;
}

.tabla-asm-moderna thead th {
    white-space: nowrap;
}

/* --- Light Theme Table Styles (tabla-asm-moderna) --- */
.selection-light .tabla-asm-moderna table,
.selection-light .tabla-asm-moderna #tblCnf {
    background-color: var(--light-surface) !important;
    color: var(--light-text) !important;
}

/* Header teal brand */
.selection-light .tabla-asm-moderna thead th,
.selection-light .tabla-asm-moderna #tblCnf thead th {
    background-color: var(--asm-teal) !important;
    color: #ffffff !important;
    text-transform: uppercase !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.5px !important;
    font-weight: 700 !important;
    padding: 0.875rem 1rem !important;
    border: none !important;
    border-bottom: 2px solid var(--asm-teal-dark) !important;
}

/* Zebra striping  aplica directamente, no requiere .table-striped */
.selection-light .tabla-asm-moderna tbody>tr:not([style*="background"]) {
    background-color: var(--light-surface) !important;
    transition: background-color 0.15s ease !important;
}

.selection-light .tabla-asm-moderna tbody>tr:not([style*="background"]):nth-child(even) {
    background-color: #f1f5f9 !important;              /* Slate-100  zebra visible */
}

/* Celdas body */
.selection-light .tabla-asm-moderna td,
.selection-light .tabla-asm-moderna #tblCnf td {
    color: var(--light-text) !important;
    border-top: 1px solid var(--light-border) !important;
    padding: 8px 8px !important;
    vertical-align: middle !important;
}

/* Hover  aplica directamente, no requiere .table-hover */
.selection-light .tabla-asm-moderna tbody>tr:not(.selected):not(.Sltd):not([style*="background"]):hover td {
    background-color: rgba(30, 166, 168, 0.07) !important; /* Tint teal on hover */
}

/* Fila seleccionada  override DataTables box-shadow blue highlight */
table.dataTable tbody>tr.selected>*,
table.dataTable tbody>tr.selected:hover>*,
table.dataTable.table-striped>tbody>tr.odd.selected>*,
table.dataTable.table-striped>tbody>tr.even.selected>*,
table.dataTable.table-hover>tbody>tr.selected:hover>* {
    box-shadow: none !important;
}

table.dataTable tbody>tr.selected,
table.dataTable tbody>tr>.selected,
table.dataTable tbody>tr.selected td,
table.dataTable tbody>tr.selected:hover,
table.dataTable tbody>tr.selected:hover td,
.selection-light .tabla-asm-moderna table>tbody>tr.selected,
.selection-light .tabla-asm-moderna table>tbody>tr.selected:hover,
.selection-light .tabla-asm-moderna #tblCnf>tbody>tr.selected,
.selection-light .tabla-asm-moderna #tblCnf>tbody>tr.selected:hover,
.selection-light .tabla-asm-moderna .table-striped>tbody>tr.selected:nth-of-type(odd),
.selection-light .tabla-asm-moderna .table-striped>tbody>tr.selected:nth-of-type(even),
.selection-light .tabla-asm-moderna .table-striped>tbody>tr.selected:nth-of-type(odd) td,
.selection-light .tabla-asm-moderna .table-striped>tbody>tr.selected:nth-of-type(even) td {
    background-color: rgba(30, 166, 168, 0.14) !important;
    border-left: 3px solid var(--asm-teal) !important;
    color: #0f172a !important;
}

.selection-light .tabla-asm-moderna table>tbody>tr.selected:hover td,
.selection-light .tabla-asm-moderna #tblCnf>tbody>tr.selected:hover td {
    background-color: rgba(30, 166, 168, 0.20) !important;
}

.selection-light .tabla-asm-moderna table>tbody>tr.selected td,
.selection-light .tabla-asm-moderna #tblCnf>tbody>tr.selected td {
    color: #0f172a !important;
    border-top-color: rgba(30, 166, 168, 0.25) !important;
    background-color: rgba(30, 166, 168, 0.14) !important;
}

/* Hide DataTables responsive ::before icon when dt-control already has its own icon */
td.dt-control:before,
td.dtr-control:before {
    display: none !important;
}

/* Override dt-control color when row is selected */
table.dataTable tbody>tr.selected td.dt-control span,
.tabla-asm-moderna table>tbody>tr.selected td.dt-control span,
.tabla-asm-moderna table>tbody>tr.selected td.dt-control span i {
    color: var(--asm-teal-dark) !important;
}

/* --- Dark Theme Table Styles (.tabla-asm-moderna) --- */
.selection-dark .tabla-asm-moderna table,
.selection-dark .tabla-asm-moderna #tblCnf {
    background-color: #1d2b31 !important;
}

/* Override DataTables default white row background */
.selection-dark .tabla-asm-moderna table.dataTable tbody tr:not([style*="background"]) {
    background-color: #25343b !important;
}

.selection-dark .tabla-asm-moderna .table-striped>tbody>tr:not([style*="background"]):nth-of-type(odd),
.selection-dark .tabla-asm-moderna #tblCnf.table-striped>tbody>tr:not([style*="background"]):nth-of-type(odd) {
    background-color: #25343b !important;
}

.selection-dark .tabla-asm-moderna .table-striped>tbody>tr:not([style*="background"]):nth-of-type(even),
.selection-dark .tabla-asm-moderna #tblCnf.table-striped>tbody>tr:not([style*="background"]):nth-of-type(even) {
    background-color: #1d2b31 !important;
}

/* Force white text on ALL cells in dark mode  override DataTables/Bootstrap defaults */
.selection-dark .tabla-asm-moderna td,
.selection-dark .tabla-asm-moderna #tblCnf td,
.selection-dark .tabla-asm-moderna table.dataTable tbody td,
.selection-dark .tabla-asm-moderna table.dataTable tbody th {
    color: var(--dark-text) !important;
    border-top: 1px solid #334a52 !important;
    padding: 8px 8px !important;
    vertical-align: middle !important;
}

/* thead dark styles consolidated in section 2 above */

.selection-dark .tabla-asm-moderna .table-hover>tbody>tr:not([style*="background"]):hover,
.selection-dark .tabla-asm-moderna #tblCnf.table-hover>tbody>tr:not([style*="background"]):hover {
    background-color: rgba(30, 166, 168, 0.12) !important;
}

/* Force white text on status-colored rows (rows with inline background via createdRow) */
.tabla-asm-moderna tbody tr[style*="background"] td,
.tabla-asm-moderna tbody tr[style*="background"] td span,
.tabla-asm-moderna tbody td[style*="background"],
.tabla-asm-moderna tbody td[style*="background"] span {
    color: white !important;
}

/* DataTables controls  dark styling */
.selection-dark .tabla-asm-moderna .dataTables_length,
.selection-dark .tabla-asm-moderna .dataTables_filter,
.selection-dark .tabla-asm-moderna .dataTables_length label,
.selection-dark .tabla-asm-moderna .dataTables_filter label {
    color: var(--dark-text-muted) !important;
}
.selection-dark .tabla-asm-moderna .dataTables_length select,
.selection-dark .tabla-asm-moderna .dataTables_filter input {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-text) !important;
    border: 1px solid var(--dark-input-border) !important;
    border-radius: 4px !important;
}

/* Selected row in dark mode */
.selection-dark .tabla-asm-moderna table>tbody>tr.selected,
.selection-dark .tabla-asm-moderna table>tbody>tr.selected:hover,
.selection-dark .tabla-asm-moderna #tblCnf>tbody>tr.selected,
.selection-dark .tabla-asm-moderna #tblCnf>tbody>tr.selected:hover,
.selection-dark .tabla-asm-moderna .table-striped>tbody>tr.selected:nth-of-type(odd),
.selection-dark .tabla-asm-moderna .table-striped>tbody>tr.selected:nth-of-type(even) {
    background-color: var(--asm-teal-dark) !important;
}

.selection-dark .tabla-asm-moderna table>tbody>tr.selected td,
.selection-dark .tabla-asm-moderna #tblCnf>tbody>tr.selected td,
.selection-dark .tabla-asm-moderna .table-striped>tbody>tr.selected:nth-of-type(odd) td,
.selection-dark .tabla-asm-moderna .table-striped>tbody>tr.selected:nth-of-type(even) td {
    color: #ffffff !important;
    background-color: var(--asm-teal-dark) !important;
}

/* --- DataTables Pagination Specific Styles (asm-pagination-clean replica) --- */
.tabla-asm-moderna .dataTables_paginate {
    width: 100% !important;
    text-align: center !important;
    margin: 25px 0 45px 0 !important;
    display: flex !important;
    justify-content: center !important;
    float: none !important;
}

.tabla-asm-moderna .dataTables_paginate .pagination {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 4px !important;
    border: none !important;
    background: transparent !important;
}

.tabla-asm-moderna .dataTables_paginate .pagination li.paginate_button {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}

.tabla-asm-moderna .dataTables_paginate .pagination li.paginate_button a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 34px !important;
    padding: 0 16px !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    color: #444 !important;
    background-color: #fff !important;
    border: 1px solid #cdd4dc !important;
    border-radius: 4px !important;
    transition: all 0.2s ease !important;
    text-decoration: none !important;
    min-width: 40px !important;
    cursor: pointer;
}

.tabla-asm-moderna .dataTables_paginate .pagination li.paginate_button:hover a {
    background-color: #f0fafa !important;
    border-color: var(--asm-teal) !important;
    color: #1ea6a8 !important;
}

.tabla-asm-moderna .dataTables_paginate .pagination li.paginate_button.active a {
    background-color: var(--asm-teal) !important;
    border-color: var(--asm-teal) !important;
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(30, 166, 168, 0.2) !important;
}

.tabla-asm-moderna .dataTables_paginate .pagination li.paginate_button.disabled a {
    background-color: #f8f9fa !important;
    border-color: #e9ecef !important;
    color: #adb5bd !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

/* DataTables pagination dark — consolidated in "Pagination Controls" section above */

.tabla-asm-moderna .dataTables_info {
    width: 100% !important;
    text-align: center !important;
    padding-top: 0 !important;
    margin-bottom: 10px !important;
    clear: both;
    color: #666;
}

.selection-dark .tabla-asm-moderna .dataTables_info {
    color: var(--dark-text-muted) !important;
}

.tabla-asm-moderna .dataTables_filter input[type="search"] {
    width: 200px !important;
    min-width: 150px !important;
    max-width: 250px !important;
    box-sizing: border-box !important;
}

.tabla-asm-moderna .dataTables_filter label {
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.tabla-asm-moderna .dataTables_filter button {
    flex-shrink: 0;
}

/* --- Modern Form Layout ASM --- */
.modern-form-asm {
    background-color: transparent;
    padding: 0;
    margin-bottom: 2rem;
}

.modern-form-asm label {
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 5px;
    color: #4b5563;
}

.selection-dark .modern-form-asm label {
    color: #94a3b8;
}

.modern-form-asm .form-control {
    border-radius: 6px;
    border: 1px solid #d1d5db;
    padding: 8px 12px;
    height: 38px;
    font-size: 0.9rem;
    color: #374151; /* Color texto claro normal */
    background-color: #ffffff;
    transition: all 0.2s;
}

/* El .dropdown-toggle del bootstrap-select tiene su propio sistema de dimensiones 
   excluirlo del height/padding de .form-control para que no se corte el borde */
.modern-form-asm .bootstrap-select > button.btn.dropdown-toggle {
    height: auto !important;
    padding: 0.375rem 0.75rem !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 0.9rem !important;
    color: #374151 !important;
    text-align: left !important;
}

/* Cuando selectpicker tiene class="form-control", bootstrap-select agrega form-control al wrapper div.
   .modern-form-asm .form-control le inyecta padding:8px 12px que desplaza el boton y corta el borde.
   El borde va en el wrapper (como un select nativo), no en el button. */
.modern-form-asm .bootstrap-select.form-control {
    padding: 0 !important;
    height: 38px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    overflow: visible;
    background-color: #ffffff !important;
    font-size: 0.9rem !important;
}

/* Tema dark  borde en el wrapper, color de texto en el button */
.selection-dark .modern-form-asm .bootstrap-select.form-control {
    border-color: var(--dark-border) !important;
    background-color: #1e293b !important;
}
.selection-dark .modern-form-asm .bootstrap-select > button.btn.dropdown-toggle {
    color: var(--dark-text) !important;
}

.modern-form-asm .form-control[readonly],
.modern-form-asm .form-control:disabled {
    background-color: #f3f4f6;
    color: #6b7280;
    border-color: #e5e7eb;
    cursor: not-allowed;
}

.selection-dark .modern-form-asm .form-control {
    background-color: #1e293b;
    border-color: #334155;
    color: #f8fafc;
}

.selection-dark .modern-form-asm .form-control[readonly],
.selection-dark .modern-form-asm .form-control:disabled {
    background-color: #0f172a;
    border-color: #1e293b;
    color: #64748b;
    opacity: 0.8;
}

.modern-form-asm .form-control:focus {
    border-color: #1ea6a8;
    box-shadow: 0 0 0 3px rgba(30, 166, 168, 0.15);
}

.selection-dark .modern-form-asm .form-control:focus {
    border-color: #2ab8a1;
    box-shadow: 0 0 0 3px rgba(42, 184, 161, 0.2);
}

/* Custom Checkbox ASM integration for Admin/Modern-form pages */
.custom-checkbox-asm {
    cursor: pointer;
    color: #4b5563;
    display: inline-flex;
    align-items: center;
    font-size: 0.85rem;
    font-weight: 600;
}

.selection-dark .custom-checkbox-asm {
    color: #94a3b8;
}

.custom-checkbox-asm input[type="checkbox"] {
    cursor: pointer;
    accent-color: #1ea6a8;
}

.selection-dark .custom-checkbox-asm input[type="checkbox"] {
    accent-color: #2ab8a1;
}

/* Radio buttons y checkboxes Bootstrap (.form-check-input) */
.form-check-input[type="radio"],
.form-check-input[type="checkbox"] {
    accent-color: #1ea6a8;
    width: 1.1em;
    height: 1.1em;
    cursor: pointer;
    margin-right: 6px;
    margin-top: 0;
    vertical-align: middle;
}
.form-check-inline {
    display: inline-flex !important;
    align-items: center;
    margin-right: 16px;
}
.form-check-label {
    cursor: pointer;
    vertical-align: middle;
    line-height: 1;
}
.selection-dark .form-check-label {
    color: var(--dark-text, #f8fafc);
}

.btn-custom {
    background-color: #1ea6a8;
    color: white;
    border: none;
    padding: 8px 25px;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.2s;
}

.btn-custom:hover:not(:disabled) {
    background-color: #138385;
    color: white;
    transform: translateY(-1px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.btn-custom:disabled {
    background-color: #d1d5db;
    cursor: not-allowed;
    opacity: 0.7;
}

.selection-dark .btn-custom {
    background-color: var(--asm-teal-dark) !important;
    box-shadow: none !important;
}

.selection-dark .btn-custom:disabled,
.selection-dark .btn-custom[disabled] {
    background-color: #334155 !important;
    color: #64748b !important;
}

/* --- Premium Button Variants --- */
.btn-reset-asm {
    background-color: #6c757d;
    color: white;
    border: none;
    padding: 8px 25px;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.2s;
}

.btn-reset-asm:hover:not(:disabled) {
    background-color: #5a6268;
    color: white;
    transform: translateY(-1px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.btn-reset-asm:disabled {
    background-color: #e5e5e5;
    color: #aaa;
    cursor: not-allowed;
}

.selection-dark .btn-reset-asm {
    background-color: #475569;
}

.selection-dark .btn-reset-asm:hover:not(:disabled) {
    background-color: #334155;
}

.selection-dark .btn-reset-asm:disabled {
    background-color: #1e293b;
    color: #475569;
}

.btn-danger-asm,
.btn.btn-danger-asm {
    background-color: #be123c !important;
    color: white !important;
    border: none !important;
    padding: 8px 24px !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
    transition: all 0.2s;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
    cursor: pointer !important;
}

.btn-danger-asm:hover:not(:disabled) {
    background-color: #9f1239 !important;
    color: white !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 6px rgba(190, 18, 60, 0.25) !important;
}

.btn-danger-asm:disabled,
.btn-danger-asm[disabled] {
    background-color: #e2e8f0 !important;
    color: var(--dark-text-muted) !important;
    cursor: not-allowed !important;
    opacity: 0.7 !important;
    box-shadow: none !important;
    transform: none !important;
}

.selection-dark .btn-danger-asm {
    background-color: #991b1b !important;
}

.selection-dark .btn-danger-asm:hover:not(:disabled) {
    background-color: #7f1d1d !important;
}

.selection-dark .btn-danger-asm:disabled,
.selection-dark .btn-danger-asm[disabled] {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-disabled-text) !important;
    cursor: not-allowed !important;
    opacity: 0.7 !important;
}

.btn-success-asm {
    background-color: #1d5900;
    color: white;
    border: none;
    padding: 8px 25px;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.2s;
}

.btn-success-asm:hover:not(:disabled) {
    background-color: #144000;
    color: white;
    transform: translateY(-1px);
    box-shadow: 0 4px 6px rgba(0, 50, 0, 0.1);
}

.btn-success-asm:disabled {
    background-color: #d4edda;
    color: #c3e6cb;
    cursor: not-allowed;
}

.selection-dark .btn-success-asm {
    background-color: #166534;
}

.selection-dark .btn-success-asm:hover:not(:disabled) {
    background-color: #14532d;
}

.selection-dark .btn-success-asm:disabled {
    background-color: #052e16;
    color: #14532d;
}

.btn-group-asm {
    display: flex;
    gap: 10px;
    width: 100%;         /* Necesario para que justify-content: flex-end tenga espacio */
}

.btn-group-asm.justify-end {
    justify-content: flex-end;
}

/* =============================================================================
   DT TOOLBAR  Filtros sobre la tabla (Lista Deal Tickets y similares)
   ============================================================================= */
.dt-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding: 14px 18px 14px 18px;
    border-radius: 10px;
    margin-bottom: 10px;
}

.dt-toolbar-left {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    margin-right: auto;
}

.dt-toolbar-right {
    display: flex;
    align-items: center;
    gap: 14px;
}

/* Anular margin-bottom de Bootstrap en controles dentro de la toolbar */
.dt-toolbar .form-control,
.dt-toolbar select,
.dt-toolbar input {
    margin-bottom: 0 !important;
    /* La altura la maneja .form-control de Bootstrap uniformemente */
}

.dt-filter-group {
    display: flex;
    flex-direction: column;
    justify-content: flex-end; /* Fuerza que el contenido caiga hacia abajo */
    gap: 4px;
}

/* Grupo de acciones (Buscar + Limpiar): botones uno al lado del otro */
.dt-filter-group.dt-filter-action {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 8px;
}

.dt-filter-group.dt-filter-action .dt-filter-label {
    display: none; /* El label vacio (&nbsp;) no aporta en layout horizontal */
}

.dt-filter-label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 0;
    line-height: 1; /* Normaliza altura del texto */
}

/* Select dropdown arrow spacing  custom arrow with proper breathing room */
select.form-control {
    padding-right: 36px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: var(--arrow-down-svg) !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 12px !important;
}

.dt-filter-select {
    width: 80px !important;     /* Sobreescribe el width: 100% global de .form-control */
    height: 38px !important;    /* Iguala altura con dt-daterange y dt-filter-input */
    border-radius: 6px;
    margin: 0 !important;
    padding-right: 28px !important;
}

.dt-filter-input {
    min-width: 200px;
    height: 38px !important;
    border-radius: 6px;
    margin: 0 !important;
}

.dt-daterange {
    height: 38px !important;
    min-width: 230px;
    margin: 0 !important;
}

.dt-daterange input {
    height: 38px !important;
    margin: 0 !important;
    box-sizing: border-box;
}

.dt-btn-search {
    height: 38px !important;
    padding: 0 18px !important;
    font-weight: 600;
    border-radius: 8px !important;
    border: none;
    white-space: nowrap;
    margin: 0 !important;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 0.85rem !important;
}

/* Badge total de registros */
.dt-total-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 5px 12px;
    border-radius: 20px;
    white-space: nowrap;
}

/* Boton Excel */
.dt-excel-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 6px 14px;
    border-radius: 8px;
    text-decoration: none !important;
    cursor: pointer;
    transition: all 0.2s ease;
}

.dt-excel-btn:hover {
    transform: translateY(-1px);
}

/* "" Light Theme "" */
.selection-light .dt-toolbar {
    background-color: #dde1e7;
    border: 1px solid #c4cad4;
}

.selection-light .dt-filter-label {
    color: #374151;
}

.selection-light .dt-total-badge {
    background-color: rgba(30, 166, 168, 0.1);
    color: var(--asm-teal-dark);
    border: 1px solid rgba(30, 166, 168, 0.25);
}

.selection-light .dt-excel-btn {
    color: #1d5900;
    background-color: rgba(29, 89, 0, 0.07);
    border: 1px solid rgba(29, 89, 0, 0.2);
}

.selection-light .dt-excel-btn:hover {
    background-color: rgba(29, 89, 0, 0.15);
    color: #1d5900;
}

/* "" Dark Theme "" */
.selection-dark .dt-toolbar {
    background-color: #1e293b;
    border: 1px solid #334155;
}

.selection-dark .dt-filter-label {
    color: #94a3b8;
}

.selection-dark .dt-total-badge {
    background-color: rgba(30, 166, 168, 0.12);
    color: #1ea6a8;
    border: 1px solid rgba(30, 166, 168, 0.3);
}

.selection-dark .dt-excel-btn {
    color: #4ade80;
    background-color: rgba(74, 222, 128, 0.08);
    border: 1px solid rgba(74, 222, 128, 0.2);
}

.selection-dark .dt-excel-btn:hover {
    background-color: rgba(74, 222, 128, 0.16);
    color: #4ade80;
}

/* =============================================================================
   CUSTOM FILE INPUT  Modal Requisitos (tabla-adjuntos-dt)
   ============================================================================= */

/* Contenedor: flex centrado */
.custom-file {
    position: relative;
    display: flex !important;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 38px;
    overflow: hidden;
}

/* Input real: invisible pero cubre todo el area para ser clickeable */
.custom-file-input {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    cursor: pointer;
    z-index: 2;
    margin: 0 !important;
    border: none !important;
    background: none !important;
}

/* Label visible: boton centrado con icono carpeta */
.custom-file-label {
    position: relative;
    z-index: 1;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 5px 16px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    pointer-events: none;   /* El click lo captura el input real encima */
}

/* Icono de carpeta via pseudo-elemento */
.custom-file-label::before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\f07b";   /* fa-folder-open */
    font-size: 0.95rem;
}

/* Quitar el "::after" de Bootstrap que pone "Browse" */
.custom-file-label::after {
    display: none !important;
}

/* "" Light Theme "" */
.selection-light .custom-file-label {
    background-color: rgba(30, 166, 168, 0.08);
    border: 1px solid rgba(30, 166, 168, 0.3);
    color: #138385;
}

.selection-light .custom-file:hover .custom-file-label {
    background-color: rgba(30, 166, 168, 0.18);
    border-color: #1ea6a8;
    color: #0f6b6d;
}

/* "" Dark Theme "" */
.selection-dark .custom-file-label {
    background-color: rgba(30, 166, 168, 0.1);
    border: 1px solid rgba(30, 166, 168, 0.3);
    color: #1ea6a8;
}

.selection-dark .custom-file:hover .custom-file-label {
    background-color: rgba(30, 166, 168, 0.22);
    border-color: #1ea6a8;
    color: #5dd9db;
}

/* =============================================================================
   SWEETALERT2  Dark & Light Theme Overrides
   Applies globally to all Swal.fire() modals via theme context classes.
   ============================================================================= */

/* """ SHARED (both themes) """ */
.swal-above-modal {
    z-index: 99999 !important;
}

.swal2-popup {
    border-radius: 12px !important;
    font-family: inherit !important;
    padding: 1.5rem !important;
}

.swal2-title {
    font-weight: 700 !important;
    font-size: 1.25rem !important;
}

.swal2-html-container {
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
}

/* Confirm button  teal brand */
.swal2-confirm.swal2-styled {
    background-color: var(--asm-teal) !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 10px 28px !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
    box-shadow: 0 2px 8px rgba(30, 166, 168, 0.3) !important;
    transition: background-color 0.2s ease !important;
}

.swal2-confirm.swal2-styled:hover {
    background-color: var(--asm-teal-dark) !important;
    box-shadow: 0 4px 12px rgba(30, 166, 168, 0.4) !important;
}

.swal2-confirm.swal2-styled:focus {
    box-shadow: 0 0 0 3px rgba(30, 166, 168, 0.3) !important;
}

/* Cancel button */
.swal2-cancel.swal2-styled {
    border-radius: 8px !important;
    padding: 10px 28px !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
    transition: all 0.2s ease !important;
}

/* Deny button */
.swal2-deny.swal2-styled {
    border-radius: 8px !important;
    padding: 10px 28px !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
}

/* Icon tweaks  use teal for success icon */
.swal2-icon.swal2-success .swal2-success-ring {
    border-color: rgba(30, 166, 168, 0.3) !important;
}

.swal2-icon.swal2-success [class^="swal2-success-line"] {
    background-color: var(--asm-teal) !important;
}

/* Timer progress bar */
.swal2-timer-progress-bar {
    background: rgba(30, 166, 168, 0.5) !important;
}


/* """ DARK THEME """ */
.selection-dark .swal2-popup {
    background-color: #1e293b !important;
    border: 1px solid var(--dark-border) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6) !important;
    color: var(--dark-text-subtle) !important;
}

.selection-dark .swal2-title {
    color: #f1f5f9 !important;
}

.selection-dark .swal2-html-container {
    color: var(--dark-text-muted) !important;
}

/* Close button */
.selection-dark .swal2-close {
    color: var(--dark-disabled-text) !important;
}

.selection-dark .swal2-close:hover {
    color: #f1f5f9 !important;
}

/* Cancel button dark */
.selection-dark .swal2-cancel.swal2-styled {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-text-subtle) !important;
    border: 1px solid var(--dark-input-border) !important;
}

.selection-dark .swal2-cancel.swal2-styled:hover {
    background-color: #475569 !important;
}

/* Input fields inside Swal */
.selection-dark .swal2-input,
.selection-dark .swal2-textarea,
.selection-dark .swal2-select {
    background-color: var(--dark-input-bg) !important;
    border: 1px solid var(--dark-input-border) !important;
    color: var(--dark-text-subtle) !important;
    border-radius: 8px !important;
}

.selection-dark .swal2-input:focus,
.selection-dark .swal2-textarea:focus {
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 3px rgba(30, 166, 168, 0.2) !important;
}

/* Validation message */
.selection-dark .swal2-validation-message {
    background-color: rgba(248, 113, 113, 0.15) !important;
    color: #f87171 !important;
}

/* Footer */
.selection-dark .swal2-footer {
    border-top-color: #334155 !important;
    color: var(--dark-disabled-text) !important;
}

/* Toast dark */
.selection-dark .swal2-popup.swal2-toast {
    background-color: #1e293b !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5) !important;
}

/* Icon colors in dark */
.selection-dark .swal2-icon.swal2-warning {
    border-color: #f59e0b !important;
    color: #f59e0b !important;
}

.selection-dark .swal2-icon.swal2-error {
    border-color: #f87171 !important;
}

.selection-dark .swal2-icon.swal2-error [class^="swal2-x-mark-line"] {
    background-color: #f87171 !important;
}

.selection-dark .swal2-icon.swal2-info {
    border-color: #60a5fa !important;
    color: #60a5fa !important;
}

.selection-dark .swal2-icon.swal2-question {
    border-color: #a78bfa !important;
    color: #a78bfa !important;
}

/* Backdrop dark */
.selection-dark .swal2-container {
    background: rgba(0, 0, 0, 0.6) !important;
}


/* """ LIGHT THEME """ */
.selection-light .swal2-popup {
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12) !important;
    color: #334155 !important;
}

.selection-light .swal2-title {
    color: #1e293b !important;
}

.selection-light .swal2-html-container {
    color: #475569 !important;
}

/* Close button */
.selection-light .swal2-close {
    color: var(--dark-text-muted) !important;
}

.selection-light .swal2-close:hover {
    color: #334155 !important;
}

/* Cancel button light */
.selection-light .swal2-cancel.swal2-styled {
    background-color: #f1f5f9 !important;
    color: #475569 !important;
    border: 1px solid #cbd5e1 !important;
}

.selection-light .swal2-cancel.swal2-styled:hover {
    background-color: #e2e8f0 !important;
}

/* Input fields inside Swal */
.selection-light .swal2-input,
.selection-light .swal2-textarea,
.selection-light .swal2-select {
    background-color: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    color: #334155 !important;
    border-radius: 8px !important;
}

.selection-light .swal2-input:focus,
.selection-light .swal2-textarea:focus {
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 3px rgba(30, 166, 168, 0.15) !important;
}

/* Validation message */
.selection-light .swal2-validation-message {
    background-color: #fef2f2 !important;
    color: #c0392b !important;
}

/* Footer */
.selection-light .swal2-footer {
    border-top-color: #e2e8f0 !important;
    color: var(--dark-text-muted) !important;
}

/* Backdrop light */
.selection-light .swal2-container {
    background: rgba(15, 23, 42, 0.4) !important;
}

/* =============================================================================
   JQUERY-CONFIRM  Dark & Light Theme Overrides
   Applies globally to all $.confirm() / $.alert() dialogs.
   ============================================================================= */

/* """ SHARED (both themes) """ */
.jconfirm .jconfirm-box {
    border-radius: 12px !important;
    font-family: inherit !important;
    padding: 20px 20px 0 !important;
}

.jconfirm .jconfirm-box div.jconfirm-title-c {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    padding-bottom: 12px !important;
}

.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c {
    margin-right: 10px !important;
}

.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content {
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
}

/* Override type border to use teal */
.jconfirm .jconfirm-box.jconfirm-type-green {
    border-top: solid 4px #1ea6a8 !important;
    animation: none !important;
    -webkit-animation: none !important;
}

.jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c {
    color: #1ea6a8 !important;
}

.jconfirm .jconfirm-box.jconfirm-type-blue {
    border-top: solid 4px #1ea6a8 !important;
    animation: none !important;
    -webkit-animation: none !important;
}

.jconfirm .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c {
    color: #1ea6a8 !important;
}

/* Buttons  ASM branded */
.jconfirm .jconfirm-box .jconfirm-buttons {
    padding: 12px 0 !important;
    text-align: right !important;
}

.jconfirm .jconfirm-box .jconfirm-buttons button {
    border-radius: 8px !important;
    padding: 8px 22px !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
    text-transform: none !important;
    transition: all 0.2s ease !important;
    border: none !important;
}

/* Primary / blue buttons ' teal */
.jconfirm .jconfirm-box .jconfirm-buttons button.btn-primary,
.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue,
.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green {
    background-color: var(--asm-teal) !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(30, 166, 168, 0.3) !important;
}

.jconfirm .jconfirm-box .jconfirm-buttons button.btn-primary:hover,
.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover,
.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green:hover {
    background-color: var(--asm-teal-dark) !important;
    box-shadow: 0 4px 12px rgba(30, 166, 168, 0.4) !important;
}

/* Red / danger buttons */
.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red {
    background-color: #ef4444 !important;
    color: #fff !important;
}

.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover {
    background-color: #dc2626 !important;
}

/* Close icon */
.jconfirm .jconfirm-box div.jconfirm-closeIcon {
    font-size: 20px !important;
    opacity: 0.5 !important;
    transition: opacity 0.2s ease !important;
}

.jconfirm .jconfirm-box div.jconfirm-closeIcon:hover {
    opacity: 1 !important;
}


/* """ DARK THEME """ */
.selection-dark .jconfirm .jconfirm-box {
    background: #1e293b !important;
    border: 1px solid var(--dark-border) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6) !important;
    color: var(--dark-text-subtle) !important;
}

/* Loading overlay dark */
.selection-dark .jconfirm .jconfirm-box.loading:before {
    background: #1e293b !important;
}

.selection-dark .jconfirm .jconfirm-box div.jconfirm-title-c {
    color: #f1f5f9 !important;
}

.selection-dark .jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content {
    color: var(--dark-text-muted) !important;
}

.selection-dark .jconfirm .jconfirm-box div.jconfirm-closeIcon {
    color: var(--dark-disabled-text) !important;
}

.selection-dark .jconfirm .jconfirm-box div.jconfirm-closeIcon:hover {
    color: #f1f5f9 !important;
}

/* Inputs inside jconfirm dark */
.selection-dark .jconfirm .jconfirm-box input.form-control,
.selection-dark .jconfirm .jconfirm-box select.form-control,
.selection-dark .jconfirm .jconfirm-box textarea.form-control,
.selection-dark .jconfirm .jconfirm-box input[type="text"],
.selection-dark .jconfirm .jconfirm-box input[type="number"] {
    background-color: var(--dark-input-bg) !important;
    border: 1px solid var(--dark-input-border) !important;
    color: var(--dark-text-subtle) !important;
    border-radius: 6px !important;
}

.selection-dark .jconfirm .jconfirm-box input.form-control:focus,
.selection-dark .jconfirm .jconfirm-box input[type="number"]:focus {
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 2px rgba(30, 166, 168, 0.2) !important;
}

/* Labels inside jconfirm dark */
.selection-dark .jconfirm .jconfirm-box label {
    color: var(--dark-text-muted) !important;
}

/* Default button dark */
.selection-dark .jconfirm .jconfirm-box .jconfirm-buttons button.btn-default {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-text-subtle) !important;
}

.selection-dark .jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover {
    background-color: #475569 !important;
}

/* Red button text on dark for cancel */
.selection-dark .jconfirm .jconfirm-box .jconfirm-buttons button.btn-red {
    background-color: rgba(239, 68, 68, 0.15) !important;
    color: #f87171 !important;
    border: 1px solid rgba(239, 68, 68, 0.3) !important;
}

.selection-dark .jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover {
    background-color: rgba(239, 68, 68, 0.25) !important;
}

/* Backdrop dark */
.selection-dark .jconfirm .jconfirm-bg {
    background-color: rgba(0, 0, 0, 0.6) !important;
    opacity: 1 !important;
}

/* Error label inside dark */
.selection-dark .jconfirm .jconfirm-box .text-danger {
    color: #f87171 !important;
}

/* Scrollbar inside content pane dark */
.selection-dark .jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.04) !important;
}

.selection-dark .jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-thumb {
    background: #4a5d75 !important;
}


/* """ LIGHT THEME """ */
.selection-light .jconfirm .jconfirm-box {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12) !important;
    color: #334155 !important;
}

.selection-light .jconfirm .jconfirm-box div.jconfirm-title-c {
    color: #1e293b !important;
}

.selection-light .jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content {
    color: #475569 !important;
}

.selection-light .jconfirm .jconfirm-box div.jconfirm-closeIcon {
    color: var(--dark-text-muted) !important;
}

.selection-light .jconfirm .jconfirm-box div.jconfirm-closeIcon:hover {
    color: #334155 !important;
}

/* Labels inside jconfirm light */
.selection-light .jconfirm .jconfirm-box label {
    color: #475569 !important;
}

/* Red button light  subtle outline style */
.selection-light .jconfirm .jconfirm-box .jconfirm-buttons button.btn-red {
    background-color: #fef2f2 !important;
    color: #dc2626 !important;
    border: 1px solid #fecaca !important;
}

.selection-light .jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover {
    background-color: #fee2e2 !important;
}

/* Default button light */
.selection-light .jconfirm .jconfirm-box .jconfirm-buttons button.btn-default {
    background-color: #f1f5f9 !important;
    color: #475569 !important;
    border: 1px solid #cbd5e1 !important;
}

.selection-light .jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover {
    background-color: #e2e8f0 !important;
}

/* Backdrop light */
.selection-light .jconfirm .jconfirm-bg {
    background-color: rgba(15, 23, 42, 0.35) !important;
    opacity: 1 !important;
}

/* =============================================================================
   GLOBAL  FormValidation Error Styles
   ============================================================================= */

/* Error message text color */
.fv-plugins-framework .fv-help-block {
    color: #dc3545;
    font-size: 0.8rem;
}

.selection-dark .fv-plugins-framework .fv-help-block {
    color: #f87171;
}

/*
 * .asm-inline-form — opt-in class for forms where fields + buttons are in the same row.
 * Error messages float absolutely so they don't push sibling columns.
 * Add this class to the <form> element in views that use inline field layouts.
 */
.asm-inline-form .form-group {
    position: relative;
    padding-bottom: 20px;   /* always-on space so error never reflows layout */
}

.asm-inline-form .fv-plugins-message-container {
    position: absolute;
    bottom: 0;
    left: 0;
    white-space: nowrap;
    z-index: 5;
}

/* Buttons col in inline form must match the padding-bottom of field cols */
.asm-inline-form .btn-group-asm {
    padding-bottom: 20px;
}

/* =============================================
   Bootstrap-select + is-invalid
   ============================================= */
/* When selectpicker wrapper gets is-invalid, show red border on wrapper (no en el button) */
.bootstrap-select.is-invalid > .dropdown-toggle {
    border-color: #dc3545 !important;
    box-shadow: none !important;
}
.bootstrap-select.is-invalid > .dropdown-toggle:focus {
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
}
/* El borde de error va en el wrapper  mismos colores que otros form-controls */
.selection-light .modern-form-asm .bootstrap-select.form-control.is-invalid,
.modern-form-asm .bootstrap-select.form-control.is-invalid {
    border: 2px solid #dc3545 !important;
    box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.2) !important;
    background-color: rgba(220, 53, 69, 0.04) !important;
}
/* El button tiene background: transparent  lo hacemos blanco para no dejar ver el tinte rosa del wrapper */
.selection-light .modern-form-asm .bootstrap-select.form-control.is-invalid > button.btn.dropdown-toggle {
    background-color: #ffffff !important;
}
.selection-dark .modern-form-asm .bootstrap-select.form-control.is-invalid {
    border: 1px solid #e74c3c !important;
    box-shadow: 0 0 0 2px rgba(231, 76, 60, 0.25) !important;
    background-color: rgba(231, 76, 60, 0.08) !important;
}
.selection-dark .modern-form-asm .bootstrap-select.form-control.is-invalid > button.btn.dropdown-toggle {
    background-color: #1e293b !important;
}

/* Override main.min.css que aplica height:32px y padding:3px al boton del bootstrap-select,
   causando que el borde inferior sea cortado. Se restaura el padding de form-control.
   Tambien neutraliza el height:38px y padding:8px 12px de .modern-form-asm .form-control
   que aplica indirectamente al boton. */
button.btn.dropdown-toggle.btn-light {
    height: auto !important;
    padding: 0.375rem 0.75rem !important;
}

/* """ Bootstrap-Select Dropdown  Dark Theme """ */
.selection-dark .bootstrap-select .dropdown-menu {
    background-color: #1e293b !important;
    border: 1px solid var(--dark-border) !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
}

.selection-dark .bootstrap-select .dropdown-menu .dropdown-item,
.selection-dark .bootstrap-select .dropdown-menu li a {
    color: var(--dark-text-subtle) !important;
    padding: 8px 16px !important;
}

.selection-dark .bootstrap-select .dropdown-menu .dropdown-item:hover,
.selection-dark .bootstrap-select .dropdown-menu li a:hover,
.selection-dark .bootstrap-select .dropdown-menu .dropdown-item:focus,
.selection-dark .bootstrap-select .dropdown-menu li a:focus {
    background-color: var(--dark-input-bg) !important;
    color: var(--dark-text) !important;
}

.selection-dark .bootstrap-select .dropdown-menu .dropdown-item.active,
.selection-dark .bootstrap-select .dropdown-menu .dropdown-item.selected,
.selection-dark .bootstrap-select .dropdown-menu li.selected a,
.selection-dark .bootstrap-select .dropdown-menu li.active a {
    background-color: rgba(30, 166, 168, 0.2) !important;
    color: #5eead4 !important;
}

/* Checkmark icon in multi-select */
.selection-dark .bootstrap-select .dropdown-menu li.selected a .check-mark,
.selection-dark .bootstrap-select .dropdown-menu li.selected a .glyphicon-ok::before {
    color: #1ea6a8 !important;
}

/* Search input inside dropdown (bs-searchbox) */
.selection-dark .bootstrap-select .dropdown-menu .bs-searchbox .form-control {
    background-color: var(--dark-input-bg) !important;
    border: 1px solid var(--dark-input-border) !important;
    color: var(--dark-text-subtle) !important;
}

/* No results text */
.selection-dark .bootstrap-select .dropdown-menu .no-results {
    color: var(--dark-text-muted) !important;
    background-color: transparent !important;
}

/* Divider */
.selection-dark .bootstrap-select .dropdown-menu .divider,
.selection-dark .bootstrap-select .dropdown-menu .dropdown-divider {
    border-top-color: #334155 !important;
}

/* Toggle button dark */
.selection-dark .bootstrap-select > .dropdown-toggle {
    background-color: var(--dark-input-bg) !important;
    border-color: var(--dark-input-border) !important;
    color: var(--dark-text-subtle) !important;
}

.selection-dark .bootstrap-select > .dropdown-toggle:focus {
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 2px rgba(30, 166, 168, 0.2) !important;
}

/* """ Bootstrap-Select Dropdown  Light Theme """ */
.selection-light .bootstrap-select .dropdown-menu {
    background-color: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
}

.selection-light .bootstrap-select .dropdown-menu .dropdown-item.active,
.selection-light .bootstrap-select .dropdown-menu .dropdown-item.selected,
.selection-light .bootstrap-select .dropdown-menu li.selected a,
.selection-light .bootstrap-select .dropdown-menu li.active a {
    background-color: rgba(30, 166, 168, 0.1) !important;
    color: #0f6b6d !important;
}

.selection-light .bootstrap-select .dropdown-menu li.selected a .check-mark,
.selection-light .bootstrap-select .dropdown-menu li.selected a .glyphicon-ok::before {
    color: #1ea6a8 !important;
}


/* =============================================
   Input + Search Button join (input-group)
   Makes the input and adjacent button appear
   as a single unified control
   ============================================= */
.input-group > .form-control:not(:last-child) {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.input-group > .input-group-append > .btn,
.input-group > .btn:last-child {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    margin-left: -1px;
}
/* Also handle direct adjacency without input-group-append wrapper */
.input-group > .form-control + .btn {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    margin-left: -1px;
}

/* =============================================================================
   DATATABLES  Modern Sorting Indicators
   Style: Heroicons stroke chevrons + underline accent en columna activa
   (patron usado por Linear, Stripe, GitHub  sin cajas, sin rellenos)
   ============================================================================= */

/* --- CRITICO: jquery.dataTables.min.css aplica PNGs como background-image
   directo en el <th>. Hay que anularlos ANTES que todo lo demas. --- */
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
    background-image: none !important;
    background-repeat: no-repeat;
}

/* --- Suprimir arrows unicode de dataTables.bootstrap4.css --- */
table.dataTable > thead .sorting:before,
table.dataTable > thead .sorting:after,
table.dataTable > thead .sorting_asc:before,
table.dataTable > thead .sorting_asc:after,
table.dataTable > thead .sorting_desc:before,
table.dataTable > thead .sorting_desc:after,
table.dataTable > thead .sorting_asc_disabled:before,
table.dataTable > thead .sorting_asc_disabled:after,
table.dataTable > thead .sorting_desc_disabled:before,
table.dataTable > thead .sorting_desc_disabled:after {
    content: none !important;
    display: none !important;
}

/* --- Espacio para el icono --- */
table.dataTable > thead .sorting,
table.dataTable > thead .sorting_asc,
table.dataTable > thead .sorting_desc {
    position: relative;
    padding-right: 26px !important;
    transition: box-shadow 0.2s ease;
}

/* --- Columna activa: underline accent blanco (el detalle moderno) --- */
table.dataTable > thead .sorting_asc,
table.dataTable > thead .sorting_desc {
    box-shadow: inset 0 -3px 0 rgba(255, 255, 255, 0.85);
}

/* --- Base del icono SVG (shared for DataTables + tabla-mesa + fallback) --- */
table.dataTable > thead .sorting::after,
table.dataTable > thead .sorting_asc::after,
table.dataTable > thead .sorting_desc::after,
.tabla-mesa thead th:has(a[href*="sortOrder"])::after,
.tabla-mesa thead th.asm-sort-asc::after,
.tabla-mesa thead th.asm-sort-desc::after,
.tabla-mesa thead th.asm-sortable::after {
    display: block !important;
    content: '' !important;
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    background-color: transparent;
    bottom: unset !important;
    transition: opacity 0.2s ease;
    pointer-events: none;
}

/* --- Neutro: chevron doble v blanco al 32% --- */
table.dataTable > thead .sorting::after {
    opacity: 0.32;
    background-image: var(--sort-neutral-svg);
}

/* --- ASC: chevron ' blanco solido --- */
table.dataTable > thead .sorting_asc::after {
    opacity: 1;
    background-image: var(--sort-asc-svg);
}

/* --- DESC: chevron " blanco solido --- */
table.dataTable > thead .sorting_desc::after {
    opacity: 1;
    background-image: var(--sort-desc-svg);
}

/* --- Hover en columnas ordenables: preview del chevron --- */
table.dataTable > thead .sorting:hover::after {
    opacity: 0.6;
}

/* =============================================================================
   TABLA-MESA  Server-side Sorting Indicators (CSS puro, sin JS)
   
   Neutro:  CSS :has() detecta automaticamente cualquier <th> que contenga
            un link de sort  sin tocar el HTML ni necesitar JS.
   Activo:  Agregar .asm-sort-asc o .asm-sort-desc al <th> desde Razor.
   ============================================================================= */

/* --- Cualquier <th> de tabla-mesa con link de sort ' sortable automaticamente --- */
.tabla-mesa thead th:has(a[href*="sortOrder"]) {
    position: relative;
    padding-right: 26px !important;
    cursor: pointer;
    transition: box-shadow 0.2s ease;
}

/* --- El <a> ocupa todo el <th> para que el chevron tambien sea clickeable --- */
.tabla-mesa thead th:has(a[href*="sortOrder"]) > a {
    display: block;
    width: calc(100% + 26px + 8px);  /* extend to cover right padding + left padding */
    margin: -8px -26px -8px -8px;    /* negate th padding so link covers full cell */
    padding: 8px 26px 8px 8px;       /* re-apply same padding inside the link */
    color: inherit;
    text-decoration: none;
}

/* --- Base ::after already defined in shared sort icon section above --- */

/* --- Neutro: chevron doble v blanco al 32% --- */
.tabla-mesa thead th:has(a[href*="sortOrder"]):not(.asm-sort-asc):not(.asm-sort-desc)::after {
    opacity: 0.32;
    background-image: var(--sort-neutral-svg);
}

/* --- Hover en neutro: preview al 60% --- */
.tabla-mesa thead th:has(a[href*="sortOrder"]):not(.asm-sort-asc):not(.asm-sort-desc):hover::after {
    opacity: 0.6;
}

/* --- Columna activa: underline accent blanco en base del header --- */
.tabla-mesa thead th.asm-sort-asc,
.tabla-mesa thead th.asm-sort-desc {
    position: relative;
    padding-right: 26px !important;
    cursor: pointer;
    box-shadow: inset 0 -3px 0 rgba(255, 255, 255, 0.85);
}

/* --- ASC/DESC: only image + opacity (base ::after defined in shared section) --- */
.tabla-mesa thead th.asm-sort-asc::after {
    opacity: 1;
    background-image: var(--sort-asc-svg);
}

.tabla-mesa thead th.asm-sort-desc::after {
    opacity: 1;
    background-image: var(--sort-desc-svg);
}

/* --- El <a> dentro de asm-sort-* tambien debe llenar todo el <th> --- */
.tabla-mesa thead th.asm-sort-asc > a,
.tabla-mesa thead th.asm-sort-desc > a {
    display: block;
    width: calc(100% + 26px + 8px);
    margin: -8px -26px -8px -8px;
    padding: 8px 26px 8px 8px;
    color: inherit;
    text-decoration: none;
}

/* --- Fallback: .asm-sortable class for browsers without :has() support --- */
.tabla-mesa thead th.asm-sortable {
    position: relative;
    padding-right: 26px !important;
    cursor: pointer;
    transition: box-shadow 0.2s ease;
}

.tabla-mesa thead th.asm-sortable > a {
    display: block;
    width: calc(100% + 26px + 8px);
    margin: -8px -26px -8px -8px;
    padding: 8px 26px 8px 8px;
    color: inherit;
    text-decoration: none;
}

/* Base ::after already defined in shared sort icon section above */

.tabla-mesa thead th.asm-sortable:not(.asm-sort-asc):not(.asm-sort-desc)::after {
    opacity: 0.32;
    background-image: var(--sort-neutral-svg);
}

.tabla-mesa thead th.asm-sortable:not(.asm-sort-asc):not(.asm-sort-desc):hover::after {
    opacity: 0.6;
}

/* =============================================================================
   VALIDACION GLOBAL  is-invalid override para inputs y selects
   Garantiza visibilidad del borde rojo en ambos temas.
   ============================================================================= */
.selection-dark .form-control.is-invalid,
.selection-dark select.is-invalid,
.selection-dark input.is-invalid {
    border-color: #e74c3c !important;
    box-shadow: 0 0 0 2px rgba(231, 76, 60, 0.25) !important;
    background-color: rgba(231, 76, 60, 0.08) !important;
}

.selection-light .form-control.is-invalid,
.selection-light select.is-invalid,
.selection-light input.is-invalid {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.2) !important;
    background-color: rgba(220, 53, 69, 0.04) !important;
}

/* ***********************************************************
   SweetAlert2 — Teal Header Title
   Used by Liquidacion Anticipada and similar dialogs
   *********************************************************** */
.swal-teal-title {
    background-color: var(--asm-teal) !important;
    color: #fff !important;
    padding: 12px 20px !important;
    margin: 0 !important;
    border-radius: 5px 5px 0 0;
    font-size: 18px !important;
    width: 100%;
}
.swal-dark-popup .swal2-close,
.swal-light-popup .swal2-close {
    color: #fff !important;
    position: absolute;
    top: 8px;
    right: 12px;
    font-size: 1.6rem;
    opacity: 0.85;
    z-index: 10;
}
.swal-dark-popup .swal2-close:hover,
.swal-light-popup .swal2-close:hover {
    opacity: 1;
    color: #fff !important;
}

/* Dark-themed Swal popup */
.swal-dark-popup {
    background-color: var(--dark-surface) !important;
    border: 1px solid var(--dark-border) !important;
    border-radius: 12px !important;
    padding: 0 !important;
}
.swal-dark-popup .swal2-html-container {
    color: var(--dark-text) !important;
    padding: 16px 20px !important;
    margin: 0 !important;
}
.swal-dark-popup .fdbc {
    background-color: transparent !important;
    padding: 0 !important;
    border: none !important;
}
.swal-dark-popup label {
    color: var(--dark-text) !important;
    font-weight: 600;
    font-size: 13px;
    margin-bottom: 4px;
}
.swal-dark-popup .form-control {
    background-color: var(--dark-input-bg) !important;
    border: 1px solid var(--dark-border) !important;
    color: var(--dark-text) !important;
    border-radius: 6px;
    padding: 8px 12px !important;
    height: 38px;
}
.swal-dark-popup .form-control:focus {
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 2px var(--asm-teal-glow) !important;
}
.swal-dark-popup .form-control[readonly] {
    opacity: 0.7;
}

/* Light-themed Swal popup */
.swal-light-popup {
    background-color: var(--light-surface) !important;
    border: 1px solid var(--light-border) !important;
    border-radius: 12px !important;
    padding: 0 !important;
}
.swal-light-popup .swal2-title {
    color: #fff !important;
}
.swal-light-popup .swal2-html-container {
    color: var(--light-text) !important;
    padding: 16px 20px !important;
    margin: 0 !important;
}
.swal-light-popup .fdbc {
    background-color: transparent !important;
    padding: 0 !important;
    border: none !important;
}
.swal-light-popup label {
    color: var(--light-text) !important;
    font-weight: 600;
    font-size: 13px;
    margin-bottom: 4px;
}
.swal-light-popup .form-control {
    background-color: #fff !important;
    border: 1px solid var(--light-border) !important;
    color: var(--light-text) !important;
    border-radius: 6px;
    padding: 8px 12px !important;
    height: 38px;
}
.swal-light-popup .form-control:focus {
    border-color: var(--asm-teal) !important;
    box-shadow: 0 0 0 2px var(--asm-teal-glow) !important;
}

/* ***********************************************************
   Form inputs — ensure padding so text doesn't touch border
   Fixes date inputs and readonly fields with no left padding
   *********************************************************** */
.fdbc .form-control,
.fdbc input[type="text"],
.fdbc input[type="number"],
.fdbc input[readonly] {
    padding-left: 12px !important;
    padding-right: 12px !important;
}

/* DataTables info text ("Mostrando X a Y de Z lineas")  breathing room above */
.dataTables_info {
    margin-top: 10px !important;
}

/* =============================================================================
   SIDEBAR TOGGLE BUTTON (#close-sidebar)  Responsive
   ============================================================================= */

/* Style the hamburger button  clean, no background */
#close-sidebar {
    background: none !important;
    border: none !important;
    padding: 4px !important;
    cursor: pointer !important;
    transition: opacity 0.2s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    margin-left: 4px !important;
    opacity: 0.65;
}

#close-sidebar:hover {
    background: none !important;
    border: none !important;
    opacity: 1;
    transform: none;
}

#close-sidebar img {
    width: 16px !important;
    height: 16px !important;
    filter: none !important;
}

/* =============================================================================
   SIDEBAR PREMIUM  Nav Side Menu Modernization
   Overrides user-side-navigation.css styles for a modern teal-based look.
   ============================================================================= */

/* --- Sidebar container --- */
.nav-side-menu {
    background: linear-gradient(180deg, #1a2332 0%, #15202e 60%, #101820 100%) !important;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    border-right: 1px solid rgba(30, 166, 168, 0.12);
}

/* --- Menu item links --- */
.nav-side-menu a {
    color: #b8c9d9 !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

.nav-side-menu a:hover {
    color: #ffffff !important;
}

/* --- Top-level items --- */
.nav-side-menu li {
    border-left: 3px solid transparent !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
    transition: all 0.2s ease !important;
}

.nav-side-menu li a {
    color: #b8c9d9 !important;
}

.nav-side-menu li a i {
    color: rgba(30, 166, 168, 0.7) !important;
    transition: color 0.2s ease !important;
    width: 22px !important;
}

.nav-side-menu li a span {
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em !important;
}

/* --- Hover state --- */
.nav-side-menu li:hover {
    border-left: 3px solid #1ea6a8 !important;
    background: rgba(30, 166, 168, 0.08) !important;
    transition: all 0.2s ease !important;
}

.nav-side-menu li:hover > a {
    color: #ffffff !important;
}

.nav-side-menu li:hover > a i {
    color: #1ea6a8 !important;
}

/* --- Active state --- */
.nav-side-menu ul .active,
.nav-side-menu li .active {
    border-left: 3px solid #1ea6a8 !important;
    background: rgba(30, 166, 168, 0.12) !important;
    box-shadow: inset 4px 0 8px rgba(30, 166, 168, 0.15);
}

.nav-side-menu li.active > a {
    color: #ffffff !important;
}

.nav-side-menu li.active > a i {
    color: #1ea6a8 !important;
}

/* --- Sub-menu container --- */
.nav-side-menu ul .sub-menu li,
.nav-side-menu li .sub-menu li {
    background-color: #111a24 !important;
    border: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03) !important;
    border-left: 3px solid transparent !important;
    line-height: 32px !important;
    transition: all 0.2s ease !important;
}

/* Sub-menu links must stay inline with the :before chevron */
.nav-side-menu .sub-menu li a {
    display: inline !important;
}

/* Sub-menu item hover */
.nav-side-menu ul .sub-menu li:hover,
.nav-side-menu li .sub-menu li:hover {
    background-color: rgba(30, 166, 168, 0.08) !important;
    border-left: 3px solid rgba(30, 166, 168, 0.5) !important;
}

.nav-side-menu ul .sub-menu li:hover a,
.nav-side-menu li .sub-menu li:hover a {
    color: #ffffff !important;
}

/* Sub-menu item active */
.nav-side-menu ul .sub-menu li.active,
.nav-side-menu li .sub-menu li.active {
    background-color: rgba(30, 166, 168, 0.15) !important;
    border-left: 3px solid #1ea6a8 !important;
}

.nav-side-menu ul .sub-menu li.active a,
.nav-side-menu li .sub-menu li.active a {
    color: #ffffff !important;
    font-weight: 600 !important;
}

/* Sub-menu chevron icon  inherit teal color */
.nav-side-menu ul .sub-menu li:before,
.nav-side-menu li .sub-menu li:before {
    color: rgba(30, 166, 168, 0.5) !important;
    padding-left: 14px !important;
    padding-right: 8px !important;
    font-size: 10px !important;
}

.nav-side-menu ul .sub-menu li:hover:before,
.nav-side-menu li .sub-menu li:hover:before {
    color: #1ea6a8 !important;
}

.nav-side-menu ul .sub-menu li.active:before,
.nav-side-menu li .sub-menu li.active:before {
    color: #1ea6a8 !important;
}

/* Arrow icon (parent items with children) */
.nav-side-menu ul :not(collapsed) .arrow:before,
.nav-side-menu li :not(collapsed) .arrow:before {
    color: rgba(30, 166, 168, 0.5) !important;
    transition: color 0.2s ease, transform 0.3s ease;
}

.nav-side-menu li:hover .arrow:before {
    color: #1ea6a8 !important;
}

.nav-side-menu li.active .arrow:before {
    color: #1ea6a8 !important;
}

/* --- Custom Scrollbar for sidebar (Webkit) --- */
.nav-side-menu::-webkit-scrollbar {
    width: 5px;
}

.nav-side-menu::-webkit-scrollbar-track {
    background: transparent;
}

.nav-side-menu::-webkit-scrollbar-thumb {
    background: rgba(30, 166, 168, 0.3);
    border-radius: 10px;
}

.nav-side-menu::-webkit-scrollbar-thumb:hover {
    background: rgba(30, 166, 168, 0.5);
}

/* Firefox scrollbar */
.nav-side-menu {
    scrollbar-width: thin !important;
    scrollbar-color: rgba(30, 166, 168, 0.3) transparent !important;
}

/* --- Brand section inside sidebar (if used) --- */
.nav-side-menu .brand {
    background-color: #0f1820 !important;
    border-bottom: 1px solid rgba(30, 166, 168, 0.15);
}

/* =============================================================================
   SIDEBAR LIGHT THEME  Only color overrides (structure inherited from dark)
   Both themes use a dark sidebar for visual hierarchy.
   ============================================================================= */
.selection-light .nav-side-menu {
    background: linear-gradient(180deg, #2c3e50 0%, #263545 50%, #1f2d3d 100%) !important;
    border-right: 1px solid rgba(30, 166, 168, 0.15) !important;
    box-shadow: 2px 0 16px rgba(0, 0, 0, 0.12) !important;
    color: #ccd6e0 !important;
    scrollbar-color: rgba(30, 166, 168, 0.25) transparent !important;
}

.selection-light .nav-side-menu a { color: #b0bfce !important; }
.selection-light .nav-side-menu li a { color: #b0bfce !important; }
.selection-light .nav-side-menu li a i { color: rgba(30, 166, 168, 0.6) !important; }
.selection-light .nav-side-menu li a span { color: #b0bfce !important; }

.selection-light .nav-side-menu ul .sub-menu li,
.selection-light .nav-side-menu li .sub-menu li {
    background-color: #1f2d3d !important;
}

.selection-light .nav-side-menu::-webkit-scrollbar-thumb { background: rgba(30, 166, 168, 0.25); }
.selection-light .nav-side-menu::-webkit-scrollbar-thumb:hover { background: rgba(30, 166, 168, 0.45); }
.selection-light .nav-side-menu .brand { background-color: #243342 !important; }

/* In responsive mode (<1158px), hide menu-content by default so toggle can reveal it */
@media (max-width: 1157px) {
    #menu .menu-content {
        display: none;
    }

    /* Ensure the sidebar doesn't take fixed height when expanded */
    #menu .nav-side-menu {
        height: auto !important;
        max-height: 60vh;
        overflow-y: auto;
    }
}

/* """ DataTables: ancho del selector "Mostrar N lineas" """ */
.dataTables_length select {
    width: 70px !important;
    display: inline-block !important;
}

/* """ Boton copiar documento (modal Documento) """ */
.btn-copy-doc {
    background-color: #e0e0e0 !important;
    color: #212529 !important;
    border: 1px solid #c8c8c8 !important;
    border-left: none !important;
    border-radius: 0 8px 8px 0 !important;
    padding: 6px 12px !important;
    cursor: pointer;
    transition: background-color 0.2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.btn-copy-doc:hover {
    background-color: #cccccc !important;
    color: #000 !important;
}

/*  Panel de errores en modals (Cambio de Estado, etc.)  */
.errores-modal-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background-color: rgba(220, 53, 69, 0.1);
    border: 1px solid rgba(220, 53, 69, 0.35);
    border-left: 4px solid #dc3545;
    border-radius: 8px;
    padding: 10px 14px;
    margin-top: 8px;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #b91c2b;
}
.errores-modal-alert > i {
    color: #dc3545;
    font-size: 1rem;
}
.errores-modal-alert .errores-lista li {
    margin-bottom: 2px;
}
.selection-dark .errores-modal-alert {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.45);
    color: #ff7b87;
}
.selection-dark .errores-modal-alert > i {
    color: #ff6b7a;
}

/*  Login: fix focus background en dark mode  */
.login-page.selection-dark .form-control:focus,
.login-page.selection-dark .premium-input:focus,
.login-page.selection-dark input.form-control:focus {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
    border-color: rgba(30, 166, 168, 0.5) !important;
    box-shadow: 0 0 0 0.2rem rgba(30, 166, 168, 0.2) !important;
}

.login-page.selection-dark input:-webkit-autofill,
.login-page.selection-dark input:-webkit-autofill:focus,
.login-page.selection-dark input:-webkit-autofill:active,
.login-page.selection-dark input:-webkit-autofill:hover,
.login-page.selection-dark .premium-input:-webkit-autofill,
.login-page.selection-dark .premium-input:-webkit-autofill:focus,
.login-page.selection-dark .premium-input:-webkit-autofill:active,
.login-page.selection-dark .premium-input:-webkit-autofill:hover {
    -webkit-box-shadow: 0 0 0 1000px #1a1e23 inset !important;
    -webkit-text-fill-color: #fff !important;
    background-color: #1a1e23 !important;
    border-color: rgba(30, 166, 168, 0.5) !important;
    transition: background-color 5000s ease-in-out 0s !important;
    caret-color: #fff !important;
}

/*  Mensajes de restriccion/firma dentro del item de limites  */
.limite-item-asm .form-error.is-visible {
    display: flex !important;
    align-items: flex-start;
    gap: 8px;
    background-color: rgba(220, 53, 69, 0.1);
    border-left: 3px solid #dc3545;
    border-radius: 0 6px 6px 0;
    padding: 7px 10px;
    margin-top: 10px;
    font-size: 0.82rem;
    font-weight: 500;
    color: #c0392b !important;
    line-height: 1.4;
}
.limite-item-asm .form-error.is-visible::before {
    content: "\f06a";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 0.85rem;
    flex-shrink: 0;
    margin-top: 1px;
}
.selection-dark .limite-item-asm .form-error.is-visible {
    background-color: rgba(220, 53, 69, 0.15);
    border-left-color: #f87171;
    color: #fca5a5 !important;
}
/* Mensajes de exito  el color verde se aplica via JS inline */

/* Quitar bullets legacy de ul dentro del span */
.limite-item-asm span.form-error > ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.limite-item-asm span.form-error > ul > li {
    margin-bottom: 2px;
}

/*  Botones: 6px global, capsula solo en paginas .form-page-scroll  */
.btn-custom { border-radius: 6px !important; }

.form-page-scroll .btn-asm,
.form-page-scroll .btn-danger-asm,
.form-page-scroll .btn-reset-asm,
.form-page-scroll .btn-custom,
.form-page-scroll .blue-btn {
    border-radius: 50px !important;
}

/*  Correccion: icono solo en el span exterior del limite-item-asm  */
/* Anular el ::before del span interno (dentro de ul > li) */
.limite-item-asm ul li .form-error.is-visible::before {
    content: none !important;
}
/* El span interno no necesita flex ni padding propios */
.limite-item-asm ul li .form-error.is-visible {
    display: inline !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    font-size: inherit !important;
    color: inherit !important;
}

/* =============================================================================
   FIELDSET[DISABLED]  Estilos visuales para controles dentro de fieldset deshabilitado
   El browser desactiva los controles funcionalmente pero nuestros !important
   en .selection-dark/light pisan el aspecto visual. Estas reglas lo restauran.
   ============================================================================= */

fieldset[disabled] input,
fieldset[disabled] select,
fieldset[disabled] textarea,
fieldset[disabled] button,
fieldset[disabled] .form-control {
    cursor: not-allowed !important;
    pointer-events: none !important;
    opacity: 0.6 !important;
}

/* Dark theme  aspecto disabled dentro de fieldset */
.selection-dark fieldset[disabled] input,
.selection-dark fieldset[disabled] select,
.selection-dark fieldset[disabled] textarea,
.selection-dark fieldset[disabled] .form-control {
    background-color: #1a2332 !important;
    color: var(--dark-disabled-text) !important;
    border: 1px solid var(--dark-border) !important;
}

.selection-dark fieldset[disabled] button,
.selection-dark fieldset[disabled] .btn,
.selection-dark fieldset[disabled] .btn-asm,
.selection-dark fieldset[disabled] .blue-btn {
    background-color: #1e293b !important;
    color: #475569 !important;
    border-color: var(--dark-border) !important;
    box-shadow: none !important;
}

/* Light theme  aspecto disabled dentro de fieldset */
.selection-light fieldset[disabled] input,
.selection-light fieldset[disabled] select,
.selection-light fieldset[disabled] textarea,
.selection-light fieldset[disabled] .form-control {
    background-color: #d8dce1 !important;
    color: #6b7280 !important;
    border: 1px solid #c4c9d0 !important;
}

.selection-light fieldset[disabled] button,
.selection-light fieldset[disabled] .btn,
.selection-light fieldset[disabled] .btn-asm,
.selection-light fieldset[disabled] .blue-btn {
    background-color: #e5e7eb !important;
    color: #9ca3af !important;
    border-color: #d1d5db !important;
    box-shadow: none !important;
}

/* Contenedores globales para layouts de tablas modernas */
.page-content-wrapper {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    box-sizing: border-box;
}

.table-panel-clean {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    width: 100% !important;
    padding: 0 !important;
    border: none !important;
    overflow: clip !important;
}

.table-panel-clean .container-pagination {
    flex: 0 0 auto !important;
    padding: 6px 0 !important;
}











/* =============================================================================
   FORM SECTION CARDS  Reutilizable para formularios de creacion/edicion
   ============================================================================= */

.form-section-card {
    border: 1px solid var(--dark-border);
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 20px;
}

.form-section-header {
    padding: 10px 15px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 8px;
    border-left: 3px solid var(--asm-teal);
}

.selection-dark .form-section-header {
    background: var(--dark-bg);
    color: var(--asm-teal);
    border-bottom: 1px solid var(--dark-border);
}

.selection-light .form-section-header {
    background: transparent;
    color: var(--asm-teal-dark);
    border-bottom: 1px solid var(--light-border);
}

.form-section-body { padding: 18px; }

.selection-dark  .form-section-card { background: var(--dark-surface); }
.selection-light .form-section-card { background: #f7f9fb; border-color: #c8d0da; box-shadow: 0 1px 4px rgba(0,0,0,0.08); }

.form-section-body .form-group { margin-bottom: 14px; }

.form-section-body label {
    font-weight: 600;
    font-size: 12.5px;
    text-transform: uppercase;
    letter-spacing: .3px;
    margin-bottom: 4px;
}

.selection-dark  .form-section-body label { color: var(--dark-text-muted); }
.selection-light .form-section-body label { color: var(--light-text-muted); }

.checkbox-row { display: flex; align-items: center; gap: 8px; padding-top: 6px; }
.checkbox-row input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--asm-teal); }
.checkbox-row span { font-size: 13px; font-weight: 500; }
.selection-dark  .checkbox-row span { color: var(--dark-text); }
.selection-light .checkbox-row span { color: var(--light-text); }

.action-bar { display: flex; justify-content: flex-end; gap: 12px; padding: 12px 0; }

/* Collapsible section card header */
.form-section-header-toggle {
    cursor: pointer;
    user-select: none;
    justify-content: space-between;
}
.form-section-header-toggle:hover {
    opacity: 0.85;
}
.form-section-chevron {
    transition: transform 0.3s ease;
    font-size: 11px;
    opacity: 0.7;
}
.form-section-header-toggle[aria-expanded='true'] .form-section-chevron {
    transform: rotate(180deg);
}
