:root{--azul:#0A2E63;--amarillo:#F4B400;--rojo:#D32F2F;--verde:#4CAF50;--fondo:#F8F9FA;--texto:#1f2937}*{box-sizing:border-box}body{background:var(--fondo);color:var(--texto);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:280px;background:linear-gradient(180deg,#0A2E63,#071f42);color:#fff;padding:1rem;position:fixed;height:100vh;overflow:auto}.brand{display:flex;gap:.7rem;align-items:center;padding:.7rem;margin-bottom:1rem}.brand img{width:56px;height:56px;object-fit:contain;background:#fff;border-radius:14px;padding:4px}.brand strong{display:block;font-size:1.15rem}.brand span{letter-spacing:4px;font-size:.72rem;text-transform:uppercase;color:#F4B400}.sidebar nav a{display:flex;gap:.8rem;align-items:center;color:#dbeafe;text-decoration:none;padding:.85rem 1rem;border-radius:12px;margin:.2rem 0}.sidebar nav a:hover{background:rgba(255,255,255,.12);color:#fff}.main{margin-left:280px;width:calc(100% - 280px)}.topbar{height:92px;background:#fff;border-bottom:1px solid #e5e7eb;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}.topbar h1{font-size:1.35rem;color:var(--azul);margin:0;font-weight:800}.topbar p{margin:0;color:#64748b}.content{padding:1.5rem}.kpi-card{background:#fff;border-radius:18px;padding:1.2rem;display:flex;justify-content:space-between;align-items:center;border-left:6px solid var(--azul);box-shadow:0 10px 24px rgba(15,23,42,.06);min-height:120px}.kpi-card span{display:block;color:#64748b;font-size:.9rem}.kpi-card strong{display:block;font-size:1.7rem;color:var(--azul);margin-top:.4rem}.kpi-card i{font-size:2.2rem}.panel{background:#fff;border-radius:18px;padding:1.2rem;box-shadow:0 10px 24px rgba(15,23,42,.06)}.panel h2,.section-title{font-size:1.1rem;color:var(--azul);font-weight:800}.btn-primary{background:var(--azul);border-color:var(--azul)}.btn-primary:hover{background:#08254f;border-color:#08254f}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,rgba(244,180,0,.16),transparent 35%),linear-gradient(135deg,#0A2E63,#071f42)}.login-card{width:min(440px,92vw);background:#fff;border-radius:28px;padding:2rem}.login-logo{width:140px;height:140px;object-fit:contain}.login-card h1{font-size:1.7rem;color:var(--azul);font-weight:900}.login-card p{color:#64748b}@media(max-width:991px){.sidebar{position:relative;width:100%;height:auto}.app-shell{display:block}.main{margin-left:0;width:100%}.topbar{height:auto;align-items:flex-start;gap:1rem}}
/* =======================================
   TARJETAS CATEGORÍAS
======================================= */

.category-card{
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    border:none;
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    transition:.3s;
    height:100%;
}

.category-card:hover{
    transform:translateY(-5px);
}

.category-header{
    background:linear-gradient(
        135deg,
        #0A2E63,
        #1E5AA8
    );
    color:#FFFFFF;
    padding:20px;
    text-align:center;
}

.category-icon{
    font-size:40px;
}

.category-body{
    padding:20px;
}

.category-footer{
    padding:15px 20px;
    border-top:1px solid #eee;
}

/* =======================================
   TARJETAS PRODUCTOS
======================================= */

.product-card{
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    transition:.3s;
    height:100%;
}

.product-card:hover{
    transform:translateY(-5px);
}

.product-header{
    background:linear-gradient(
        135deg,
        #0A2E63,
        #1E5AA8
    );
}

.product-body{
    padding:20px;
}

.stock-ok{
    background:#4CAF50;
    color:#fff;
}

.stock-warning{
    background:#F4B400;
}

.stock-critical{
    background:#D32F2F;
    color:#fff;
}

.badge-stock{
    padding:8px 12px;
    border-radius:20px;
    display:inline-block;
    font-weight:600;
}

.card-actions{
    border-top:1px solid #eee;
    padding:15px;
}


@import url('/assets/css/bodegas_ubicaciones.css');
@import url('/assets/css/inventario_kardex.css');
@import url('/assets/css/beneficiarios_entregas.css');



:root{
    --primary:#0A2E63;
    --primary-hover:#143E7A;
    --secondary:#F4B400;
    --light:#F8F9FA;
    --success:#4CAF50;
    --danger:#D32F2F;
}

/* BOTONES */

.btn{
    font-weight:600;
    border-radius:10px;
    padding:10px 18px;
    transition:.25s ease;
    border-width:1px;
}

.btn-primary{
    background:var(--primary) !important;
    border-color:var(--primary) !important;
    color:#FFFFFF !important;
}

.btn-primary:hover{
    background:var(--primary-hover) !important;
    border-color:var(--primary-hover) !important;
    color:#FFFFFF !important;
}

.btn-outline-primary{
    border:2px solid var(--primary) !important;
    color:var(--primary) !important;
    background:#FFFFFF !important;
}

.btn-outline-primary:hover{
    background:var(--primary) !important;
    color:#FFFFFF !important;
}

.btn-outline-danger{
    border:2px solid #D32F2F !important;
    color:#D32F2F !important;
}

.btn-outline-danger:hover{
    background:#D32F2F !important;
    color:#FFFFFF !important;
}

/* INPUTS */

.form-control,
.form-select{
    border-radius:10px;
    border:1px solid #D7DCE3;
    box-shadow:none;
}

.form-control:focus,
.form-select:focus{
    border-color:var(--primary);
    box-shadow:0 0 0 .15rem rgba(10,46,99,.20);
}

/* TÍTULOS */

.section-title{
    color:var(--primary);
    font-weight:700;
}

/* TARJETAS */

.product-card,
.inventory-card,
.beneficiary-card,
.delivery-card{
    border-radius:18px;
    overflow:hidden;
    border:none;
    box-shadow:0 5px 15px rgba(0,0,0,.07);
}

/* TABLAS */

.table thead{
    background:var(--primary);
    color:#fff;
}

.table thead th{
    color:#fff;
}

/* BADGES */

.badge{
    font-weight:600;
    border-radius:20px;
    padding:.5rem .8rem;
}

.sidebar a{
    color:#FFFFFF;
    font-weight:500;
    text-decoration:none;
    border-radius:10px;
    padding:12px 15px;
    display:flex;
    align-items:center;
    gap:10px;
}

.sidebar a:hover{
    background:rgba(255,255,255,.12);
    color:#FFFFFF;
}

/* =============================
   BODEGAS
============================= */

.warehouse-card{
    background:#fff;
    border-radius:18px;
    box-shadow:0 5px 20px rgba(0,0,0,.08);
    overflow:hidden;
    transition:.25s;
    height:100%;
}

.warehouse-card:hover{
    transform:translateY(-4px);
}

.warehouse-header{
    background:linear-gradient(
        135deg,
        #0A2E63,
        #1E5AA8
    );
}

.warehouse-header h5{
    margin:0;
    font-weight:700;
}

.warehouse-body{
    padding:20px;
}

.warehouse-body p{
    margin-bottom:10px;
}

.warehouse-footer{
    border-top:1px solid #eee;
    padding:15px;
}

.warehouse-footer .btn{
    min-width:90px;
}

.info-icon{
    color:#0A2E63;
    margin-right:8px;
}

.kpi-card{
    background:#ffffff;
    border-radius:18px;
    padding:20px;
    min-height:120px;

    display:flex;
    justify-content:space-between;
    align-items:center;

    box-shadow:0 6px 20px rgba(0,0,0,.08);

    transition:.25s;
}

.kpi-card:hover{
    transform:translateY(-3px);
}

.kpi-card span{
    display:block;
    font-size:14px;
    color:#64748b;
}

.kpi-card strong{
    display:block;
    font-size:32px;
    color:#0A2E63;
}

.kpi-card i{
    font-size:36px;
    color:#0A2E63;
}


/* FORZAR GRID BOOTSTRAP DASHBOARD */

.dashboard-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(250px,1fr));
    gap:20px;
}

@media (max-width:1200px){
    .dashboard-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media (max-width:768px){
    .dashboard-grid{
        grid-template-columns:1fr;
    }
}


.kpi-card{
    background:#ffffff;
    border-radius:18px;
    padding:20px;
    min-height:120px;

    display:flex;
    justify-content:space-between;
    align-items:center;

    box-shadow:0 4px 15px rgba(0,0,0,.08);

    transition:.25s;
}

.kpi-card:hover{
    transform:translateY(-3px);
}

.kpi-card span{
    display:block;
    color:#64748b;
    font-size:14px;
}

.kpi-card strong{
    display:block;
    color:#0A2E63;
    font-size:32px;
    line-height:1.2;
}

.kpi-card i{
    font-size:40px;
    color:#0A2E63;
}




.sidebar{
    width:280px;
    transition:all .3s ease;
}

.sidebar.collapsed{
    width:80px;
}

.sidebar.collapsed span,
.sidebar.collapsed strong{
    display:none;
}

.sidebar.collapsed a{
    justify-content:center;
}

.main{
    margin-left:280px;
    transition:all .3s ease;
}

.sidebar.collapsed + .main{
    margin-left:80px;
    width:calc(100% - 80px);
}

.product-card{
    height:100%;
    display:flex;
    flex-direction:column;
}

.product-body{
    flex:1;
}

.card-actions{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    border-top:1px solid #e5e7eb;
    padding:15px;
}

.card-actions form{
    margin:0;
}

.card-actions .btn{
    min-width:100px;
}

/* ===========================
   GRID PRODUCTOS
=========================== */

.product-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(280px,1fr));
    gap:20px;
}

@media (max-width:1400px){
    .product-grid{
        grid-template-columns:repeat(3,minmax(280px,1fr));
    }
}

@media (max-width:1100px){
    .product-grid{
        grid-template-columns:repeat(2,minmax(280px,1fr));
    }
}

@media (max-width:768px){
    .product-grid{
        grid-template-columns:1fr;
    }
}

.product-card{
    display:flex;
    flex-direction:column;
    height:100%;
}

.product-body{
    flex:1;
}