*{
    box-sizing:border-box;
}

body{
    margin:0;
    font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
    background:
        radial-gradient(circle at top left, rgba(30,91,148,.14), transparent 23%),
        radial-gradient(circle at top right, rgba(62,127,188,.10), transparent 22%),
        var(--bg);
    color:var(--text);
    font-size:15px;
}

h1,h2,h3,h4,h5,h6{
    font-family:Poppins,Inter,sans-serif;
    color:var(--title);
}

a{
    text-decoration:none;
}

.app-shell{
    min-height:100vh;
}

.sidebar-wrap{
    position:sticky;
    top:18px;
}

.sidebar-card{
    background:linear-gradient(180deg, #ffffff 0%, #F2F7FC 100%);
    border:1px solid var(--border);
    border-radius:18px;
    box-shadow:var(--shadow-md);
    padding:.8rem;
}

.brand-box{
    display:flex;
    align-items:center;
    gap:.9rem;
    padding:.6rem .45rem 1rem .45rem;
    border-bottom:1px solid var(--border);
    margin-bottom:.8rem;
}

.brand-logo{
    width:46px;
    height:46px;
    border-radius:14px;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:1.2rem;
    background:linear-gradient(135deg, var(--brand), var(--brand-2));
    box-shadow:0 10px 20px rgba(30,91,148,.22);
}

.brand-sub{
    color:var(--muted);
    font-size:.82rem;
    margin-top:.1rem;
}

.menu-title{
    font-size:.73rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
    padding:.2rem .75rem;
    margin:.8rem 0 .35rem;
}

.nav-modern .nav-link{
    display:flex;
    align-items:center;
    gap:.8rem;
    color:var(--text);
    border-radius:11px;
    padding:.68rem .78rem;
    font-weight:600;
    transition:.18s ease;
    margin-bottom:.25rem;
}

.nav-modern .nav-link i{
    width:22px;
    text-align:center;
    font-size:1rem;
}

.nav-modern .nav-link:hover{
    background:#EAF2FB;
    color:var(--brand);
    transform:translateX(2px);
}

.nav-modern .nav-link.active{
    background:linear-gradient(135deg, rgba(30,91,148,.14), rgba(88,115,143,.08));
    color:var(--brand);
    box-shadow:inset 0 0 0 1px rgba(30,91,148,.14);
}

.sidebar-user{
    margin-top:1rem;
    padding:1rem;
    border-radius:14px;
    background:var(--panel-2);
    border:1px solid var(--border);
}

.avatar{
    width:44px;
    height:44px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg, var(--brand), var(--brand-2));
    color:#fff;
    font-weight:700;
    box-shadow:0 8px 16px rgba(30,91,148,.18);
    flex:0 0 44px;
}

.btn-brand{
    background:linear-gradient(135deg, var(--brand), var(--brand-2));
    border:0;
    color:#fff;
    box-shadow:0 8px 18px rgba(30,91,148,.18);
    border-radius:11px;
    padding:.62rem .9rem;
    font-weight:700;
}

.btn-brand:hover{
    color:#fff;
    background:linear-gradient(135deg, var(--brand-hover), var(--brand));
}

.btn-soft{
    background:#fff;
    color:var(--title);
    border:1px solid var(--border);
    border-radius:11px;
    padding:.62rem .9rem;
    font-weight:600;
}

.btn-soft:hover{
    background:#EEF4FA;
    color:var(--brand);
    border-color:#B9CADB;
}

#datosPersonalesForm #btnSubmitWizard,
#declaracionJuradaForm #btnSubmitWizard{
    background:linear-gradient(135deg, var(--success), #22C55E);
    box-shadow:0 8px 18px rgba(22,163,74,.18);
}

#datosPersonalesForm #btnSubmitWizard:hover,
#declaracionJuradaForm #btnSubmitWizard:hover{
    background:linear-gradient(135deg, #15803D, var(--success));
}

.btn-danger,
.btn-outline-danger{
    background:var(--danger) !important;
    border-color:var(--danger) !important;
    color:#fff !important;
    border-radius:11px;
    padding:.62rem .9rem;
    font-weight:700;
    box-shadow:0 8px 18px rgba(185,28,28,.14);
}

.btn-danger:hover,
.btn-outline-danger:hover{
    background:#991B1B !important;
    border-color:#991B1B !important;
    color:#fff !important;
}

.btn-success,
.btn-outline-success{
    background:var(--success) !important;
    border-color:var(--success) !important;
    color:#fff !important;
    border-radius:11px;
    padding:.62rem .9rem;
    font-weight:700;
}

.btn-warning,
.btn-outline-warning{
    background:#F4B400 !important;
    border-color:#F4B400 !important;
    color:#fff !important;
    border-radius:11px;
    padding:.62rem .9rem;
    font-weight:700;
    box-shadow:0 8px 18px rgba(244,180,0,.16);
}

.btn-warning:hover,
.btn-outline-warning:hover{
    background:#D89A00 !important;
    border-color:#D89A00 !important;
    color:#fff !important;
}

.kpi-card,
.panel-card,
.access-card{
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:16px;
    box-shadow:var(--shadow-sm);
}

.section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    margin-bottom:.75rem;
}

.section-head h4{
    margin:0;
    font-size:.98rem;
}

.section-link{
    color:var(--brand);
    font-size:.92rem;
    font-weight:700;
}

.section-link:hover{
    text-decoration:underline;
}

.mobile-topbar{
    display:none;
}

@media (max-width: 991.98px){
    .sidebar-desktop{
        display:none;
    }

    .mobile-topbar{
        display:flex;
        align-items:center;
        justify-content:space-between;
        margin-bottom:1rem;
    }
}

@media (max-width: 575.98px){
    .panel-card,
    .access-card,
    .kpi-card,
    .sidebar-card{
        border-radius:20px;
    }

    .top-actions{
        width:100%;
    }

    .top-actions .btn-brand,
    .top-actions .btn-soft{
        width:100%;
    }
}


.brand-logo{
    width:72px;
    height:72px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    border:1px solid var(--border);
    box-shadow:0 10px 20px rgba(30,91,148,.10);
    overflow:hidden;
    padding:4px;
}

.brand-logo-img{
    width:96%;
    height:96%;
    object-fit:contain;
    display:block;
}
