:root{
    --brand:#1479c9;
    --brand-dark:#0d5fa0;
    --brand-soft:#eaf4ff;
    --gray-100:#f5f7fb;
    --gray-200:#e6ebf2;
    --gray-300:#d4dbe5;
    --gray-700:#475467;
    --gray-900:#1d2939;
    --sidebar-w:280px;
}
*{box-sizing:border-box}
body.app-body{
    margin:0;
    font-family:Tahoma, 'Segoe UI', sans-serif;
    background:var(--gray-100);
    color:var(--gray-900);
}
.app-shell{
    display:flex;
    min-height:100vh;
}
.sidebar{
    width:var(--sidebar-w);
    background:linear-gradient(180deg, var(--brand-dark), var(--brand));
    color:#fff;
    padding:1rem;
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    overflow-y:auto;
    transition:all .25s ease;
    z-index:1050;
}


.sidebar-mobile-top{
    display:none;
    justify-content:flex-end;
    margin-bottom:.5rem;
}
.sidebar-mobile-close{
    width:42px;
    height:42px;
    border:none;
    border-radius:12px;
    background:rgba(255,255,255,.16);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.1rem;
    cursor:pointer;
}
.mobile-sidebar-overlay{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.38);
    opacity:0;
    visibility:hidden;
    transition:all .25s ease;
    z-index:1040;
}
.mobile-sidebar-overlay.show{
    opacity:1;
    visibility:visible;
}
body.sidebar-mobile-open{
    overflow:hidden;
}


.sidebar-brand{
    display:flex;
    align-items:center;
    gap:.75rem;
    padding:.25rem .25rem 1rem .25rem;
    border-bottom:1px solid rgba(255,255,255,.15);
}
.brand-icon{
    width:42px;height:42px;border-radius:14px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.16);
    font-size:1.1rem;
}
.sidebar-user{
    display:flex;
    align-items:center;
    gap:.75rem;
    padding:1rem .25rem;
}
.avatar-circle{
    width:44px;height:44px;border-radius:50%;
    background:rgba(255,255,255,.18);
    display:flex;align-items:center;justify-content:center;
    font-weight:700;
}
.sidebar-section{
    margin-top:1rem;
    margin-bottom:.5rem;
    font-size:.78rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:rgba(255,255,255,.70);
}
.sidebar-link{
    display:flex;
    align-items:center;
    gap:.75rem;
    color:#fff;
    text-decoration:none;
    padding:.8rem .9rem;
    border-radius:14px;
    margin-bottom:.35rem;
    transition:all .18s ease;
    opacity:.95;
}
.sidebar-link:hover,.sidebar-link.active{
    background:rgba(255,255,255,.18);
    color:#fff;
    transform:translateX(2px);
}
.app-main{
    margin-left:var(--sidebar-w);
    width:calc(100% - var(--sidebar-w));
    min-height:100vh;
    display:flex;
    flex-direction:column;
}
.topbar{
    border-bottom:1px solid var(--gray-200);
    z-index:1030;
}
.topbar-title{
    font-size:1.02rem;
}
.page-content{
    flex:1;
    padding:1.2rem;
}
.footer-bar{
    padding:.9rem 1.2rem;
    background:#fff;
    border-top:1px solid var(--gray-200);
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:var(--gray-700);
    font-size:.88rem;
}
.page-card{
    background:#fff;
    border:1px solid var(--gray-200);
    border-radius:20px;
    box-shadow:0 10px 24px rgba(16,24,40,.04);
    padding:1rem;
}
.page-card + .page-card{margin-top:1rem}
.kpi-card{
    background:#fff;
    border:1px solid var(--gray-200);
    border-radius:20px;
    padding:1rem;
    height:100%;
    box-shadow:0 10px 24px rgba(16,24,40,.04);
}
.kpi-icon{
    width:46px;
    height:46px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--brand-soft);
    color:var(--brand-dark);
}
.kpi-value{
    font-size:1.65rem;
    font-weight:700;
}
.login-shell{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#0d5fa0,#2e90fa 55%,#97d4ff);
    padding:1rem;
}
.login-card{
    width:100%;
    max-width:980px;
    background:#fff;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 22px 60px rgba(0,0,0,.16);
}
.login-banner{
    background:linear-gradient(180deg,#0d5fa0,#1479c9);
    color:#fff;
    padding:2rem;
    height:100%;
}
.login-form-wrap{
    padding:2rem;
}
.table thead th{white-space:nowrap}
.badge{
    color:#fff;
    font-weight:600;
    border-radius:999px;
    padding:.55em .8em;
}
.lead-row{
    border-left:5px solid transparent;
}
.form-section-title{
    font-weight:700;
    color:var(--brand-dark);
    margin-bottom:.8rem;
}
.muted-help{font-size:.86rem;color:var(--gray-700)}
.sidebar-collapsed .sidebar{
    width:92px;
}
.sidebar-collapsed .sidebar .brand-text,
.sidebar-collapsed .sidebar .sidebar-user div:nth-child(2),
.sidebar-collapsed .sidebar .sidebar-section,
.sidebar-collapsed .sidebar .sidebar-link span{
    display:none;
}
.sidebar-collapsed .app-main{
    margin-left:92px;
    width:calc(100% - 92px);
}
.sidebar-collapsed .sidebar-link{
    justify-content:center;
}
.quick-stat{
    padding:.75rem 1rem;
    border-radius:16px;
    background:var(--brand-soft);
    color:var(--brand-dark);
}
.timeline{
    position:relative;
    padding-left:1rem;
}
.timeline:before{
    content:'';
    position:absolute;
    left:.3rem;
    top:0;
    bottom:0;
    width:2px;
    background:var(--gray-300);
}
.timeline-item{
    position:relative;
    padding-left:1.25rem;
    margin-bottom:1rem;
}
.timeline-item:before{
    content:'';
    position:absolute;
    left:-.08rem;
    top:.35rem;
    width:.75rem;
    height:.75rem;
    border-radius:50%;
    background:var(--brand);
}
.status-summary-box{
    border-radius:18px;
    padding:.95rem;
    color:#1d2939;
}
.table-responsive{
    overflow:auto;
}
.btn{
    border-radius:12px;
}
.form-control,.form-select{
    border-radius:12px;
    min-height:42px;
}
@media (max-width: 992px){
    .sidebar{
        width:min(86vw, 320px);
        transform:translateX(-100%);
        box-shadow:0 18px 40px rgba(0,0,0,.22);
        z-index:1050;
    }
    .sidebar.mobile-open{
        transform:translateX(0);
    }
    .sidebar-mobile-top{
        display:flex;
    }
    .app-main{
        margin-left:0;
        width:100%;
    }
    .sidebar-collapsed .app-main{
        margin-left:0;
        width:100%;
    }
    .footer-bar{
        flex-direction:column;
        gap:.35rem;
        text-align:center;
    }
}
@media (min-width: 993px){
    .mobile-sidebar-overlay,
    .sidebar-mobile-top{
        display:none !important;
    }
}
