:root{
    --brand-primary:#0b4f93;
    --brand-secondary:#177d78;
    --brand-dark:#0f2d4f;
    --brand-bg:#f5f8fc;
    --card-radius:20px;
    --shadow-soft:0 10px 24px rgba(15,45,79,.08);
}
html,body{max-width:100%;overflow-x:hidden}
body.app-body{background:linear-gradient(180deg,#f7fafd 0%,#eef4fa 100%);color:#1f2937}
body.login-body{
    min-height:100vh;
    background:
        radial-gradient(circle at top right, rgba(23,125,120,.13), transparent 25%),
        radial-gradient(circle at bottom left, rgba(11,79,147,.12), transparent 30%),
        linear-gradient(180deg,#f7fbff,#eef5fb);
}
a{text-decoration:none}
.app-container{padding:24px 16px 40px}
.app-navbar{
    background:linear-gradient(90deg,var(--brand-dark),var(--brand-primary));
    box-shadow:0 8px 24px rgba(11,79,147,.18)
}
.app-brand{display:flex;align-items:center;gap:10px;color:#fff !important}
.app-brand-logo{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:14px;padding:6px}
.app-brand-texts{display:flex;flex-direction:column;line-height:1.1}
.app-brand-title{font-size:1.2rem;font-weight:800}
.app-brand-subtitle{font-size:.78rem;opacity:.88}
.navbar-dark .navbar-nav .nav-link{
    color:rgba(255,255,255,.9);
    border-radius:999px;
    padding:.55rem .9rem;
}
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus{
    color:#fff;
    background:rgba(255,255,255,.12);
}
.page-title{font-size:1.8rem;font-weight:800;color:var(--brand-dark)}
.card,.app-card{
    border:0;
    border-radius:var(--card-radius);
    box-shadow:var(--shadow-soft);
    background:#fff;
}
.card-body{padding:1.25rem}
.section-title{font-size:1.1rem;font-weight:800;color:var(--brand-dark);margin-bottom:1rem}
.dashboard-hero{
    background:linear-gradient(135deg,#fff,#eef7ff);
    border-radius:24px;
    padding:22px;
    box-shadow:var(--shadow-soft);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}
.dashboard-hero-badge{
    width:110px;height:110px;border-radius:24px;background:#fff;display:flex;align-items:center;justify-content:center;
    box-shadow:0 10px 24px rgba(11,79,147,.10)
}
.dashboard-hero-badge img{width:88px;height:88px;object-fit:contain}
.stat-card{
    border-radius:20px;
    background:#fff;
    box-shadow:var(--shadow-soft);
    padding:18px 16px;
    min-height:120px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.stat-label{color:#6b7280;font-weight:700;margin-bottom:8px}
.stat-value{font-size:2rem;font-weight:900;color:var(--brand-primary)}
.quick-actions{display:flex;flex-wrap:wrap;gap:10px}
.quick-action{
    background:#f2f7fd;
    color:var(--brand-primary);
    border:1px solid #dbe9f8;
    padding:10px 14px;
    border-radius:14px;
    font-weight:700;
}
.quick-action:hover{background:var(--brand-primary);color:#fff}
.summary-list{padding-right:18px}
.summary-list li{margin-bottom:.65rem}
.table-modern thead th{
    background:#f4f7fb;
    color:var(--brand-dark);
    font-weight:800;
    border-bottom:0;
}
.table-modern td,.table-modern th{padding:.9rem .75rem}
.table-card{border-radius:20px;box-shadow:var(--shadow-soft)}
.mobile-actions{display:flex;flex-wrap:wrap;gap:8px}
.btn-primary{
    background:linear-gradient(90deg,var(--brand-primary),#1c6ac0);
    border:0;
    border-radius:12px;
    font-weight:700;
}
.btn-outline-primary{border-radius:12px;font-weight:700}
.btn-outline-secondary,.btn-outline-success,.btn-outline-warning,.btn-outline-danger{
    border-radius:12px;font-weight:700
}
.form-control,.form-select{
    border-radius:12px;
    min-height:46px;
    border:1px solid #d6e3f1;
}
.form-control:focus,.form-select:focus{
    border-color:#9cc0e7;
    box-shadow:0 0 0 .2rem rgba(11,79,147,.12);
}
.login-wrapper{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}
.login-card{
    width:100%;
    max-width:460px;
    background:#fff;
    border-radius:28px;
    padding:28px;
    border:1px solid #e6eef7;
}
.login-brand{margin-bottom:8px}
.login-logo{
    width:120px;height:120px;object-fit:contain;
    background:#fff;border-radius:24px;padding:10px;
    box-shadow:0 12px 28px rgba(11,79,147,.12)
}
.login-title{
    margin-top:14px;
    margin-bottom:4px;
    font-size:2.2rem;
    font-weight:900;
    color:var(--brand-primary);
}
.login-subtitle{
    margin:0;
    color:#6b7280;
    font-size:1.02rem;
}
.login-footer{color:#7b8492}
.alert{border-radius:14px;border:0}
.badge{border-radius:999px;padding:.5em .7em}
@media (max-width: 991.98px){
    .app-brand-subtitle{display:none}
}
@media (max-width: 768px){
    .dashboard-hero{flex-direction:column;align-items:flex-start}
    .app-container{padding:18px 12px 32px}
    .page-title{font-size:1.5rem}
    .mobile-actions .btn,.btn-mobile-full{width:100%}
    .login-card{padding:22px}
}
