:root{
    --admin-primary:#0d6efd;
    --admin-dark:#0f1b2d;
    --admin-sidebar-bg:#0f1b2d;
    --admin-sidebar-hover:rgba(255,255,255,.08);
    --admin-border:#e6e9ef;
    --admin-muted:#6c757d;
    --admin-bg:#f4f6f9;
}

*{box-sizing:border-box}
body.admin-body{
    font-family:Inter,Poppins,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    background:var(--admin-bg);
    color:#1c2530;
    margin:0;
}

/* ---- Shell layout ---- */
.admin-shell{display:flex;min-height:100vh}

.admin-sidebar{
    width:250px;
    flex-shrink:0;
    background:var(--admin-sidebar-bg);
    color:#dfe6f0;
    display:flex;
    flex-direction:column;
    position:sticky;
    top:0;
    height:100vh;
    z-index:1030;
}
.admin-sidebar-brand{
    display:flex;align-items:center;gap:.6rem;
    padding:1.15rem 1.25rem;
    font-weight:700;
    border-bottom:1px solid rgba(255,255,255,.08);
    color:#fff;
}
.admin-sidebar-brand img{border-radius:6px}

.admin-sidebar-nav{flex:1 1 auto;padding:1rem .75rem;overflow-y:auto}
.admin-sidebar-label{
    display:block;
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:rgba(255,255,255,.45);
    margin:.5rem .5rem .5rem;
}
.admin-sidebar-link{
    display:flex;align-items:center;gap:.6rem;
    padding:.55rem .75rem;
    border-radius:.5rem;
    color:#c9d3e0;
    text-decoration:none;
    font-size:.92rem;
    transition:background .15s ease,color .15s ease;
}
.admin-sidebar-link:hover{background:var(--admin-sidebar-hover);color:#fff}
.admin-sidebar-link.active{background:var(--admin-primary);color:#fff}
.admin-sidebar-link i{font-size:1rem;width:1.1rem;text-align:center}

.admin-sidebar-footer{
    padding:.75rem;
    border-top:1px solid rgba(255,255,255,.08);
    display:flex;flex-direction:column;gap:.15rem;
}
.admin-sidebar-logout{color:#c9d3e0;cursor:pointer}
.admin-sidebar-logout:hover{background:var(--admin-sidebar-hover);color:#fff}

.admin-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}

.admin-topbar{
    display:flex;align-items:center;gap:1rem;
    padding:.85rem 1.5rem;
    background:#fff;
    border-bottom:1px solid var(--admin-border);
    position:sticky;top:0;z-index:1020;
}
.admin-sidebar-toggle{
    border:none;background:transparent;font-size:1.3rem;color:#1c2530;
}
.admin-topbar-title{font-weight:700;font-size:1.15rem;flex:1 1 auto}
.admin-topbar-actions{display:flex;align-items:center;gap:.75rem}
.admin-topbar-user{color:var(--admin-muted);font-size:.9rem}

.admin-content{padding:1.5rem;flex:1 1 auto}

/* ---- Cards / sections ---- */
.admin-section-heading{
    display:flex;align-items:center;justify-content:between;
    gap:.75rem;
    margin:1.75rem 0 .9rem;
}
.admin-section-heading h5{margin:0;font-weight:700}
.admin-quota-badge{
    font-size:.75rem;
    padding:.25rem .6rem;
    border-radius:999px;
    background:rgba(13,110,253,.1);
    color:var(--admin-primary);
    font-weight:600;
}
.admin-quota-badge.full{background:rgba(220,53,69,.1);color:#dc3545}

.admin-panel{
    background:#fff;
    border:1px solid var(--admin-border);
    border-radius:1rem;
    padding:1.5rem;
    box-shadow:0 1px 2px rgba(16,24,40,.04);
}

.admin-empty{
    color:var(--admin-muted);
    font-size:.9rem;
    padding:1rem;
    border:1px dashed var(--admin-border);
    border-radius:.75rem;
    text-align:center;
}

.admin-body .card{border-radius:.9rem;border-color:var(--admin-border)}
.admin-body .card-img-top{background:#f0f2f6}

/* ---- Login ---- */
.admin-login-wrap{
    min-height:100vh;
    display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at top, rgba(13,110,253,.12), transparent 55%), var(--admin-dark);
    padding:1.5rem;
}
.admin-login-card{
    width:100%;max-width:420px;
    background:#fff;
    border-radius:1.1rem;
    padding:2.25rem 2rem;
    box-shadow:0 24px 60px rgba(0,0,0,.35);
}
.admin-login-brand{
    display:flex;align-items:center;gap:.6rem;
    margin-bottom:1.25rem;font-weight:700;
}
.admin-login-brand img{height:36px}
.admin-login-lang{position:absolute;top:1.25rem;right:1.5rem}

/* ---- Responsive ---- */
@media(max-width:991.98px){
    .admin-sidebar{
        position:fixed;left:0;top:0;
        transform:translateX(-100%);
        transition:transform .2s ease;
        box-shadow:0 0 40px rgba(0,0,0,.35);
    }
    .admin-shell.sidebar-open .admin-sidebar{transform:translateX(0)}
    .admin-content{padding:1rem}
}
