/* =========================================
   1. CONFIGURACIÓN BASE & VARIABLES
   ========================================= */
:root {
    /* Paleta de Marca (FULNESS Orange) */
    --primary: #F86520;       /* Naranja vibrante de tu marca */
    --primary-hover: #D95315; /* Naranja más oscuro para hover */
    --primary-gradient: linear-gradient(135deg, #F86520 0%, #FF8F50 100%);
    
    /* Colores Neutros & Texto */
    --secondary: #1B254B;     /* Azul oscuro casi negro (Texto títulos) */
    --secondary-light: #8F9BBA; /* Gris azulado (Texto secundario) */
    --text-body: #2B3674;
    
    /* Fondos */
    --bg-body: #F4F7FE;       /* Gris muy suave (Fondo principal) */
    --surface: #FFFFFF;       /* Blanco puro (Tarjetas) */
    
    /* Estados */
    --success: #05CD99;
    --success-bg: rgba(5, 205, 153, 0.1);
    --warning: #FFB547;
    --warning-bg: rgba(255, 181, 71, 0.1);
    --danger: #EE5D50;
    --danger-bg: rgba(238, 93, 80, 0.1);

    /* Bordes y Sombras Estilo Figma */
    --radius-xl: 24px;
    --radius-lg: 16px;
    --radius-md: 12px;
    --radius-sm: 8px;
    
    --shadow-sm: 0px 2px 6px rgba(112, 144, 176, 0.08);
    --shadow-card: 0px 10px 30px rgba(112, 144, 176, 0.08); 
    --shadow-float: 0px 20px 40px rgba(112, 144, 176, 0.12);
    --shadow-primary: 0px 8px 16px rgba(248, 101, 32, 0.25); /* Sombra naranja */
    
    --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Plus Jakarta Sans', 'Segoe UI', sans-serif;
}

body {
    background-color: var(--bg-body);
    color: var(--text-body);
    min-height: 100vh;
    line-height: 1.6;
}

.container {
    max-width: 1600px;
    margin: 0 auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* =========================================
   2. HEADER PREMIUM (Glassmorphism)
   ========================================= */
.header-premium {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-radius: var(--radius-xl);
    padding: 20px 30px;
    box-shadow: var(--shadow-card);
    border: 1px solid rgba(255, 255, 255, 0.5);
    position: sticky;
    top: 15px;
    z-index: 1000;
}

.header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
    border-bottom: 1px solid #E0E5F2;
    margin-bottom: 15px;
}

/* Logo Header */
.logo-container {
    display: flex;
    align-items: center;
    gap: 15px;
}

.logo-img img {
    height: 45px;
    width: auto;
    border-radius: 8px;
}

.logo-text h1 {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--secondary);
    line-height: 1.1;
    letter-spacing: -0.5px;
}

.tagline {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
    color: var(--primary);
}

.system-name {
    display: none;
}

/* Info Header */
.header-info {
    display: flex;
    gap: 10px;
}

.info-item {
    background: var(--bg-body);
    padding: 8px 16px;
    border-radius: 30px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--secondary);
    display: flex;
    align-items: center;
    gap: 8px;
}

.info-item i { color: var(--primary); }

/* Navegación */
.nav-premium {
    display: flex;
    gap: 10px;
    overflow-x: auto;
}

.nav-item {
    padding: 10px 20px;
    border-radius: var(--radius-lg);
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--secondary-light);
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.nav-item:hover {
    background: rgba(248, 101, 32, 0.05);
    color: var(--primary);
}

.nav-item.active {
    background: var(--secondary);
    color: var(--surface);
    box-shadow: 0 4px 12px rgba(27, 37, 75, 0.2);
}

/* =========================================
   3. DASHBOARD GRID & CARDS
   ========================================= */
.dashboard-container {
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 25px;
    align-items: start;
}

.card-premium {
    background: var(--surface);
    border-radius: var(--radius-xl);
    padding: 25px;
    box-shadow: var(--shadow-card);
    transition: var(--transition);
    border: 1px solid rgba(255, 255, 255, 0.6);
}

.card-premium:hover {
    box-shadow: var(--shadow-float);
    transform: translateY(-2px);
}

.card-header-premium {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 25px;
}

.header-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--primary), #FF8F50);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.1rem;
    box-shadow: var(--shadow-primary);
}

.card-header-premium h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--secondary);
}

/* =========================================
   4. FORMULARIOS (Inputs Modernos)
   ========================================= */
.form-group-premium { margin-bottom: 20px; }

.form-group-premium label {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--secondary);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.form-group-premium label i { color: var(--primary); }

.input-group-premium, .select-premium { position: relative; }

/* Inputs sin borde visible hasta el focus */
input, select, textarea {
    width: 100%;
    background: var(--bg-body);
    border: 2px solid transparent;
    padding: 14px 18px;
    padding-left: 42px;
    border-radius: var(--radius-md);
    font-size: 0.95rem;
    color: var(--secondary);
    font-weight: 500;
    transition: var(--transition);
    outline: none;
}

textarea, #unidad-personalizada { padding-left: 18px; }

input:focus, select:focus, textarea:focus {
    background: var(--surface);
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(248, 101, 32, 0.1);
}

.input-icon, .select-premium i.fa-chevron-down {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--secondary-light);
    pointer-events: none;
}
.select-premium i.fa-chevron-down { left: auto; right: 15px; }

/* Controles de cantidad */
.input-actions {
    position: absolute;
    right: 6px;
    top: 6px;
    bottom: 6px;
    display: flex;
    gap: 6px;
}

.btn-quantity {
    width: 32px;
    height: 100%;
    border: none;
    background: var(--surface);
    border-radius: 8px;
    color: var(--secondary);
    font-weight: 800;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
}
.btn-quantity:hover { background: var(--primary); color: white; }

/* Botones de Chips (Prioridad/Fecha) */
.priority-buttons, .date-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.priority-btn, .date-btn {
    padding: 10px;
    background: var(--bg-body);
    border: 2px solid transparent;
    border-radius: var(--radius-md);
    color: var(--secondary-light);
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    transition: var(--transition);
}

.priority-btn:hover, .date-btn:hover { background: #E0E5F2; color: var(--secondary); }

.priority-btn.active[data-priority="alta"] { background: var(--danger-bg); border-color: var(--danger); color: var(--danger); }
.priority-btn.active[data-priority="media"] { background: var(--warning-bg); border-color: var(--warning); color: #D98C00; }
.priority-btn.active[data-priority="baja"] { background: var(--success-bg); border-color: var(--success); color: var(--success); }
.date-btn.active { background: var(--primary); color: white; box-shadow: var(--shadow-primary); }

/* =========================================
   5. BOTONES Y ACCIONES
   ========================================= */
.btn-submit-premium {
    width: 100%;
    padding: 16px;
    background: var(--primary-gradient);
    color: white;
    border: none;
    border-radius: var(--radius-lg);
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: var(--shadow-primary);
    transition: var(--transition);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.btn-submit-premium:hover { transform: translateY(-2px); box-shadow: 0 15px 30px rgba(248, 101, 32, 0.3); }

.btn-secondary-premium {
    padding: 16px;
    background: transparent;
    color: var(--secondary-light);
    border: 2px solid #E0E5F2;
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    justify-content: center;
    align-items: center;
}
.btn-secondary-premium:hover { border-color: var(--danger); color: var(--danger); }

.form-actions-premium {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
}

/* =========================================
   6. ESTADÍSTICAS & WHATSAPP
   ========================================= */
.stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.stat-item {
    background: var(--bg-body);
    padding: 15px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    gap: 12px;
}

.stat-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
}
.stat-icon.total { background: #E0E5F2; color: var(--secondary); }
.stat-icon.high { background: var(--danger-bg); color: var(--danger); }
.stat-icon.medium { background: var(--warning-bg); color: #D98C00; }
.stat-icon.low { background: var(--success-bg); color: var(--success); }

.stat-value { font-size: 1.2rem; font-weight: 800; color: var(--secondary); display: block; }
.stat-label { font-size: 0.7rem; color: var(--secondary-light); }

.whatsapp-card {
    background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
    color: white;
}
.whatsapp-card h2, .whatsapp-card p { color: white; }
.whatsapp-card .header-icon { background: rgba(255,255,255,0.2); box-shadow: none; }

.whatsapp-info {
    background: rgba(255,255,255,0.1);
    padding: 12px;
    border-radius: var(--radius-md);
    margin: 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.btn-whatsapp {
    width: 100%;
    background: white;
    color: #128C7E;
    border: none;
    padding: 14px;
    border-radius: var(--radius-lg);
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transition: var(--transition);
    display: flex;
    justify-content: center;
    gap: 8px;
}

/* =========================================
   7. LISTA DE COMPRAS
   ========================================= */
.main-card { min-height: 800px; display: flex; flex-direction: column; }

.badge-premium {
    background: var(--primary);
    color: white;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 700;
}

.header-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.btn-action-premium {
    padding: 8px 16px;
    border-radius: var(--radius-md);
    border: none;
    font-weight: 600;
    cursor: pointer;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}
.btn-action-premium.pdf { background: var(--secondary); color: white; }
.btn-action-premium.danger { background: var(--danger-bg); color: var(--danger); }
.btn-action-premium.success { background: var(--success-bg); color: var(--success); }

.filters-premium {
    background: var(--bg-body);
    padding: 15px;
    border-radius: var(--radius-lg);
    margin-bottom: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    justify-content: space-between;
}

.filter-select {
    padding: 8px 12px;
    background: var(--surface);
    border: none;
    border-radius: var(--radius-sm);
    color: var(--secondary);
    font-weight: 600;
    cursor: pointer;
}

.lista-insumos-premium { display: flex; flex-direction: column; gap: 10px; }

.insumo-item-premium {
    background: var(--surface);
    border: 1px solid #F0F0F0;
    border-radius: var(--radius-md);
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: var(--transition);
    border-left: 4px solid transparent;
}
.insumo-item-premium:hover { box-shadow: var(--shadow-card); transform: translateX(5px); }
.insumo-item-premium.prioridad-alta { border-left-color: var(--danger); }
.insumo-item-premium.prioridad-media { border-left-color: var(--warning); }
.insumo-item-premium.prioridad-baja { border-left-color: var(--success); }

/* =========================================
   8. FOOTER PREMIUM (ARREGLADO & BONITO)
   ========================================= */
.footer-premium {
    margin-top: 50px;
    background: var(--surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-card);
    overflow: hidden;
    border: 1px solid #E0E5F2;
}

/* Línea superior naranja de decoración */
.footer-premium::before {
    content: '';
    display: block;
    height: 4px;
    background: var(--primary-gradient);
    width: 100%;
}

.footer-content {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr; /* 3 Columnas */
    gap: 40px;
    align-items: center;
}

/* Columna 1: Marca & Logo */
.footer-brand {
    display: flex;
    align-items: center;
    gap: 15px;
}

.footer-logo-box {
    width: 60px;  /* TAMAÑO FIJO PARA EVITAR EL LOGO GIGANTE */
    height: 60px;
    background: var(--primary); /* Fondo naranja por si el logo es transparente */
    border-radius: 12px;
    padding: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-primary);
}

.footer-logo {
    width: 100%;
    height: 100%;
    object-fit: contain; /* Ajusta la imagen dentro del cuadro */
}

.footer-brand-text {
    display: flex;
    flex-direction: column;
}

.brand-title {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--secondary);
    letter-spacing: -0.5px;
}

.brand-subtitle {
    font-size: 0.8rem;
    color: var(--secondary-light);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Columna 2: Información Central */
.footer-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.info-pill {
    background: var(--bg-body);
    padding: 8px 16px;
    border-radius: 50px;
    font-size: 0.85rem;
    color: var(--secondary);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid transparent;
    transition: var(--transition);
}

.info-pill:hover {
    background: white;
    border-color: var(--primary);
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}

.info-pill i { color: var(--primary); }

/* Columna 3: Contacto Derecha */
.footer-contact {
    display: flex;
    justify-content: flex-end;
}

.contact-btn {
    text-decoration: none;
    background: var(--secondary);
    color: white;
    padding: 12px 24px;
    border-radius: var(--radius-lg);
    font-weight: 700;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: var(--transition);
    box-shadow: var(--shadow-sm);
}

.contact-btn:hover {
    background: var(--primary);
    transform: translateY(-3px);
    box-shadow: var(--shadow-primary);
}

/* Copyright Bar */
.footer-bottom {
    background: #F8F9FC;
    padding: 15px 40px;
    border-top: 1px solid #E0E5F2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8rem;
    color: var(--secondary-light);
}

.footer-links a {
    color: var(--secondary-light);
    text-decoration: none;
    margin: 0 5px;
    transition: 0.3s;
}
.footer-links a:hover { color: var(--primary); }

/* =========================================
   9. RESPONSIVE DESIGN (MÓVIL)
   ========================================= */
@media (max-width: 1024px) {
    .dashboard-container { grid-template-columns: 1fr; }
    .card-premium { padding: 20px; }
}

@media (max-width: 768px) {
    .header-top { flex-direction: column; align-items: flex-start; gap: 15px; }
    .header-info { width: 100%; justify-content: space-between; }
    
    /* Ajuste Footer Móvil */
    .footer-content {
        grid-template-columns: 1fr; /* Una sola columna */
        text-align: center;
        gap: 25px;
    }
    
    .footer-brand { justify-content: center; }
    .footer-info { align-items: center; }
    .footer-contact { justify-content: center; }
    
    .footer-logo-box { width: 50px; height: 50px; } /* Logo más pequeño en celular */
    
    .footer-bottom {
        flex-direction: column;
        gap: 10px;
        text-align: center;
    }

    .contact-btn, .info-pill { width: 100%; justify-content: center; }
}