@import 'base.css?ox=7.6.5.2';
@import 'materialdesignicons.css?ox=7.6.5.2';
@import 'materialdash3.css?ox=7.6.5.2';
/* Importamos los estilos del entorno (Sobreescribe base.css y aplica estilo moderno a listas/modulos) */
@import 'materialEnt.css?ox=7.6.5.2';
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Outfit:wght@300;400;600;800&display=swap');

:root {
    --md-primary: #FF9900;
    --md-primary-container: #4a2800;
    --md-on-primary: #000000;
    --md-bg: #000000;
    --md-surface: #101010;
    --md-surface-container: #1E1E1E;
    --md-surface-variant: #2A2A2A;
    --md-text-main: #E2E2E2;
    --md-text-sub: #A0A0A0;
    --md-outline: #8E918F;
    --md-error: #FFB4AB;
    --font-display: 'Outfit', sans-serif;
    --font-body: 'Roboto', sans-serif;
    /* MAGIA DARK: Transparente a la izquierda para ver el patrón, fundiéndose con el fondo oscuro a la derecha */
    --md-header-pattern: linear-gradient(to right, transparent 0%, var(--md-surface) 80%), url('data:image/png;base64,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');
}

/* FIX GLOBAL */
body { -webkit-font-smoothing: antialiased; background-color: var(--md-bg); color: var(--md-text-main); }

/* PANTALLA WELCOME */
body#welcome {
    display: flex !important; align-items: center !important; justify-content: center !important;
    min-height: 100vh !important; margin: 0 !important; background-color: #000 !important;
    background-image: radial-gradient(circle at 50% 50%, #1a1a1a 0%, #000 100%) !important;
}

/* --- MODO LOGIN --- */
body.login-mode-active {
    display: flex !important; align-items: center !important; justify-content: center !important;
    height: 100vh !important; width: 100vw !important; overflow: hidden !important;
    background-color: var(--md-bg) !important; padding: 0 !important; margin: 0 !important;
}

#new-login-structure {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    background-color: transparent;
    z-index: 1000;
}

.card-wrapper {
    position: relative; width: 100%; max-width: 1100px;
    min-height: 520px; height: auto; max-height: 90vh;
    margin: 20px; border-radius: 28px;
    box-shadow: 0 0 0 1px rgba(255,255,255,0.1), 0 20px 50px rgba(0,0,0,0.8);
    background: var(--md-surface); display: flex;
    z-index: 2000; /* Encima de partículas */
    animation: glow 4s infinite alternate ease-in-out;
}
@keyframes glow {
    0% { box-shadow: 0 0 0 1px rgba(255,153,0,0.1), 0 10px 30px rgba(0,0,0,0.8); border-color: rgba(255,153,0,0.2); }
    100% { box-shadow: 0 0 20px 2px rgba(255,153,0,0.15), 0 25px 60px rgba(0,0,0,0.5); border-color: var(--md-primary); }
}

.login-card {
    display: flex; width: 100%; height: 100%; border-radius: 28px;
    overflow: hidden; z-index: 2;
    transform: translateZ(0);
}

/* --- CARRUSEL --- */
.visual-panel {
    flex: 1.2; position: relative;
    background: linear-gradient(180deg, #141414 0%, #000000 100%);
    overflow: hidden; display: flex; align-items: center; justify-content: center;
    border-right: 1px solid rgba(255,255,255,0.05); min-height: 500px;
}
.carousel-slide {
    position: absolute; inset: 0; opacity: 0; transform: scale(1.05);
    transition: opacity 1.5s cubic-bezier(0.4, 0, 0.2, 1), transform 8s linear;
    will-change: opacity, transform;
    display: flex; flex-direction: column; justify-content: flex-end; padding: 40px;
    z-index: 1; pointer-events: none;
}
.carousel-slide.active { opacity: 1; transform: scale(1); z-index: 2; }
.svg-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; object-fit: cover; }
.slide-content { position: relative; z-index: 2; padding-bottom: 20px; display: flex; flex-direction: column; align-items: flex-start; }

.slide-tag {
    order: -1; margin-bottom: 15px !important; display: inline-block;
    background: rgba(255, 153, 0, 0.15); color: var(--md-primary);
    padding: 6px 14px; border-radius: 20px; font-size: 0.75rem; font-weight: 700;
    letter-spacing: 1px; text-transform: uppercase;
    border: 1px solid rgba(255, 153, 0, 0.4); backdrop-filter: blur(5px);
}
.slide-title {
    margin-top: 0 !important; font-family: var(--font-display); font-size: 2.2rem; font-weight: 700;
    line-height: 1.1; margin-bottom: 10px;
    background: linear-gradient(90deg, #fff, #bbb); -webkit-background-clip: text; -webkit-text-fill-color: transparent;
}
.slide-desc { font-size: 0.95rem; color: #bbb; line-height: 1.4; max-width: 90%; margin: 0; }
.logo-floating {
    position: absolute;
    top: 30px;
    left: 30px;
    z-index: 100;
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none !important;
    cursor: pointer !important;
}
.pro-home-link {
    transition: all 0.3s ease;
}
.pro-home-link:hover {
    filter: brightness(1.1);
}
.logo-icon-box {
    width: 36px;
    height: 36px;
    background: linear-gradient(135deg, #FF9900 0%, #FF5E00 100%);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px -5px rgba(255, 153, 0, 0.5);
    position: relative;
    overflow: hidden;
}
.logo-icon-box i {
    font-size: 20px;
    color: white;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.logo-icon-box .icon-main {
    opacity: 1;
    transform: scale(1);
}
.logo-icon-box .icon-back {
    position: absolute;
    opacity: 0;
    transform: translateX(-20px) scale(0.8);
}
.pro-home-link:hover .logo-icon-box .icon-main {
    opacity: 0;
    transform: translateX(20px) scale(0.8);
}
.pro-home-link:hover .logo-icon-box .icon-back {
    opacity: 1;
    transform: translateX(0) scale(1);
}
.logo-text {
    opacity: 1;
    transform: translateX(0);
    transition: opacity 0.3s ease, transform 0.3s ease;
    color: white;
    font-weight: 700;
    font-size: 1.3rem;
    font-family: var(--font-display);
}
.logo-hint {
    position: absolute;
    left: 48px;
    opacity: 0;
    transform: translateX(10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
    font-size: 0.9rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.7);
    white-space: nowrap;
    pointer-events: none;
    font-family: var(--font-body);
}
.pro-home-link:hover .logo-text {
    opacity: 0;
    transform: translateX(-10px);
}
.pro-home-link:hover .logo-hint {
    opacity: 1;
    transform: translateX(0);
}
.dots-container { position: absolute; bottom: 30px; right: 30px; display: flex; gap: 6px; z-index: 10; }
.dot { width: 6px; height: 6px; border-radius: 4px; background: rgba(255,255,255,0.2); transition: 0.3s; cursor: pointer; pointer-events: auto; }
.dot.active { width: 24px; background: var(--md-primary); }

/* --- FORMULARIO --- */
.form-panel { flex: 1; padding: 40px 50px; background: var(--md-surface); display: flex; flex-direction: column; justify-content: center; position: relative; overflow-y: auto; }

/* FIX: PASSWORD WRAPPER */
.hideShowPassword-wrapper { width: 100% !important; display: block !important; margin: 0 !important; }
.hideShowPassword-toggle { display: none !important; }

/* FIX: OCULTAR BOTÓN DUPLICADO "CREAR CUENTA" DE OPENXAVA */
#ox_comercial_SignIn__GoSignUp___signUp,
input[value='Crear cuenta'],
input[title='Crear cuenta'] {
    display: none !important;
    visibility: hidden !important;
}

/* FIX: BOTONES DE ACCIÓN (SOLICITADO) */
#sign_in_box .ox-bottom-buttons input {
    margin-bottom: 15px;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    /* Estilos para que parezca M3 */
    height: 48px !important;
    background: var(--md-primary) !important;
    color: var(--md-on-primary) !important;
    border: none !important;
    border-radius: 24px !important;
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    box-shadow: 0 4px 10px rgba(255, 153, 0, 0.2) !important;
}

#sign_in_box .ox-bottom-buttons input:hover {
    box-shadow: 0 6px 15px rgba(255, 153, 0, 0.4) !important;
    filter: brightness(1.1);
}

.ox-bottom-buttons {
    padding-left: 0px !important;
    margin-right: 34px !important;
    display: block !important;
    text-align: center !important;
}

/* Linearize OpenXava login table for perfect centering and alignment */
body.login-mode-active #sign_in_box,
body.login-mode-active #sign_in_box table,
body.login-mode-active #sign_in_box tbody,
body.login-mode-active #sign_in_box tr,
body.login-mode-active #sign_in_box td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.login-mode-active #sign_in_box .ox-detail {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
}

/* Reset Styles */
.ox-login-box-reset { width: 100% !important; max-width: none !important; margin: 0 !important; background: transparent !important; box-shadow: none !important; border: none !important;}
.ox-login-box-reset .small-label, .ox-login-box-reset label:not(.m3-label) { display: none !important; }

/* Inputs M3 */
.m3-field-wrapper {
    position: relative; width: 100%; height: 56px;
    background: var(--md-surface-variant) !important;
    border-radius: 4px 4px 0 0; margin-bottom: 24px;
    border-bottom: 1px solid var(--md-outline); display: flex; align-items: center;
    box-sizing: border-box;
}

/* FIX AUTOCOMPLETE CHROME */
.m3-input:-webkit-autofill,
.m3-input:-webkit-autofill:hover,
.m3-input:-webkit-autofill:focus,
.m3-input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 100px var(--md-surface-variant) inset !important;
    -webkit-text-fill-color: var(--md-text-main) !important;
    transition: background-color 5000s ease-in-out 0s;
    caret-color: var(--md-text-main) !important;
}

.m3-input {
    width: 100% !important; height: 100% !important;
    background: transparent !important; border: none !important; outline: none !important; box-shadow: none !important;
    font-family: var(--font-body); font-size: 1rem !important; color: var(--md-text-main) !important;
    padding: 24px 16px 8px 48px !important; z-index: 5; margin: 0 !important;
}
.m3-label {
    color: var(--md-text-sub) !important; font-size: 1rem; position: absolute; left: 48px; top: 18px;
    pointer-events: none; transition: 0.2s; z-index: 2; font-weight: 400;
}
.m3-input:focus ~ .m3-label,
.m3-input:not(:placeholder-shown) ~ .m3-label,
.m3-input:-webkit-autofill ~ .m3-label {
    top: 6px; font-size: 0.75rem; color: var(--md-primary) !important; font-weight: 600;
}

.m3-active-indicator { position: absolute; bottom: -1px; left: 50%; width: 0%; height: 3px; background: var(--md-primary); transition: 0.3s; transform: translateX(-50%); z-index: 6; }
.m3-field-wrapper:focus-within .m3-active-indicator { width: 100%; }

.m3-icon-start { position: absolute; left: 14px; font-size: 22px; color: var(--md-text-sub); z-index: 6; }
.m3-field-wrapper:focus-within .m3-icon-start { color: var(--md-primary); }
.m3-icon-end { position: absolute; right: 14px; color: var(--md-text-sub); cursor: pointer; padding: 8px; z-index: 6; font-size: 22px; }
.m3-icon-end:hover { background: rgba(255,255,255,0.1); color: white; }

/* Botones Secundarios */
.secondary-actions-container { display: flex; gap: 10px; margin-top: 20px; width: 100%; justify-content: space-between; }
.secondary-btn {
    flex: 1; height: 44px; display: flex; align-items: center; justify-content: center; gap: 8px;
    border: 1px solid rgba(255,255,255,0.1); border-radius: 22px; color: var(--md-text-sub);
    text-decoration: none; font-size: 0.85rem; background: transparent; white-space: nowrap;
    min-width: 120px;
}
.secondary-btn:hover { background: rgba(255,153,0,0.1); color: var(--md-primary); border-color: var(--md-primary); }

/* Partículas */
.mouse-particle { position: fixed; width: 4px; height: 4px; background: var(--md-primary); border-radius: 50%; pointer-events: none; z-index: 20000; box-shadow: 0 0 10px 2px var(--md-primary); animation: particleAnim 1s ease-out forwards; }
@keyframes particleAnim { 0% { opacity: 0.8; transform: scale(1); } 100% { opacity: 0; transform: scale(3) translate(var(--mx), var(--my)); } }

/* --- ADAPTACIÓN MÓVIL CON SLIDER SUPERIOR (DARK) --- */
@media (max-width: 1000px) {
    .card-wrapper { flex-direction: column; max-height: none; margin: 15px; }
    .login-card { flex-direction: column; }
    .visual-panel {
        display: flex !important; /* Forzamos a mostrar el slider */
        min-height: 250px !important;
        flex: none !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(255,255,255,0.05) !important;
    }
    .carousel-slide { padding: 25px 20px !important; justify-content: flex-end !important; }
    .logo-floating { top: 20px !important; left: 20px !important; font-size: 1.1rem !important; }
    .logo-icon-box { width: 30px !important; height: 30px !important; }
    .logo-icon-box i { font-size: 16px !important; }
    .slide-title { font-size: 1.8rem !important; margin-bottom: 8px !important; }
    .slide-desc { font-size: 0.9rem !important; max-width: 100% !important; }
    .dots-container { bottom: 15px !important; right: 20px !important; }
    .secondary-actions-container { flex-direction: column; gap: 15px; }
    .form-panel { padding: 30px 20px; flex: none; }
    .secondary-btn { width: 100%; }
}