/* ======================================================
   MATHCLASS CMS ADMIN
   Version : 1.0
====================================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

:root{

    --primary:#185058;
    --primary-hover:#21656d;

    --success:#2e8b57;
    --danger:#dc3545;
    --warning:#ffc107;

    --bg:#f5f7fb;
    --white:#ffffff;

    --border:#e9ecef;

    --text:#212529;
    --text-light:#6c757d;

    --sidebar-width:260px;
    --header-height:70px;
    --footer-height:45px;

    --radius:12px;

    --shadow:0 4px 12px rgba(0,0,0,.05);

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html,
body{

    height:100%;
    overflow:hidden;

    font-family:'Poppins',sans-serif;

    background:var(--bg);

    color:var(--text);

}

/* ===========================================
SIDEBAR
=========================================== */

.admin-sidebar{

    position:fixed;

    top:0;
    left:0;

    width:var(--sidebar-width);

    height:100vh;

    background:var(--primary);

    display:flex;
    flex-direction:column;
    justify-content:space-between;

    z-index:1050;

}

.admin-logo{

    padding:25px;

    color:white;

    font-size:30px;

    font-weight:700;

    line-height:1.2;

}

.admin-menu{

    flex:1;

    padding:10px;

}

.admin-menu .nav-link{

    color:white;

    padding:13px 18px;

    border-radius:8px;

    margin-bottom:6px;

    transition:.2s;

    display:flex;

    align-items:center;

    gap:10px;

    transition:.2s ease;

}

.admin-menu .nav-link:hover{

    background:rgba(255,255,255,.08);

    transform:translateX(4px);

}

.admin-menu .active{

    background:rgba(255,255,255,.15);

    border-left:4px solid #4caf50;

}

.admin-footer-menu{

    padding:15px;

    border-top:1px solid rgba(255,255,255,.1);

}

/* ===========================================
TOPBAR
=========================================== */

.admin-topbar{

    position:fixed;

    top:0;

    left:var(--sidebar-width);

    right:0;

    height:var(--header-height);

    background:white;

    border-bottom:1px solid var(--border);

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:0 30px;

    z-index:1040;

}

.admin-topbar-title{

    font-size:14px;

    font-weight:600;

}

.admin-user{

    display:flex;

    align-items:center;

    gap:10px;

}

.admin-user img{

    width:40px;

    height:40px;

    border-radius:50%;

}

/* ===========================================
CONTENT
=========================================== */

.admin-content{

    position:fixed;

    top:var(--header-height);

    left:var(--sidebar-width);

    right:0;

    bottom:var(--footer-height);

    overflow-y:auto;

    padding:18px;

}

/* ===========================================
FOOTER
=========================================== */

.admin-footer{

    position:fixed;

    left:var(--sidebar-width);

    right:0;

    bottom:0;

    height:var(--footer-height);

    background:white;

    border-top:1px solid var(--border);

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:0 25px;

    font-size:13px;

    color:var(--text-light);

}

/* ===========================================
CARD
=========================================== */

.admin-card{

    background:#fff;

    border:none;

    border-radius:14px;

    box-shadow:0 6px 18px rgba(0,0,0,.06);

    overflow:hidden;

    margin-bottom:24px;

}

.admin-card-body{

    padding:20px;

}

.admin-stat{

    padding:22px;

}

.admin-stat small{

    color:var(--text-light);

}

.admin-stat h2{

    margin-top:12px;

    font-size:34px;

    font-weight:700;

}

/* ===========================================
TABLE
=========================================== */

.table{

    background:white;

    border-radius:var(--radius);

    overflow:hidden;

}

.table thead{

    background:#f8f9fa;

}

.table th{

    font-weight:600;

}

.badge{
    padding:8px 12px;
    border-radius:20px;
    font-weight:500;
    font-size:12px;
}

.table-flyer{

    width:50px;

    height:50px;

    border-radius:8px;

    object-fit:cover;

    border:1px solid #e9ecef;

    background:#f8f9fa;

}

/* ===========================================
TABLE WRAPPER
=========================================== */

.table-wrapper{

    max-height: calc(100vh - 250px);

    overflow-y: auto;

    overflow-x: auto;

    border-radius: var(--radius);

}

.table-wrapper table{

    margin-bottom: 0;

}

.table-wrapper thead{

    background: #fff;

}

.table-wrapper tbody tr{

    background: #fff;

}

.table-hover tbody tr:hover{

    background: #f8fbfc;

}

.table-wrapper thead th{

    position: sticky;

    top: 0;

    background: #fff;

    z-index: 10;

    box-shadow: 0 1px 0 var(--border);

}



/* ===========================================
BUTTON
=========================================== */

.btn-primary{

    background:var(--primary);

    border-color:var(--primary);

}

.btn-primary:hover{

    background:var(--primary-hover);

    border-color:var(--primary-hover);

}

.btn-save{

    height:48px;

    font-weight:600;

    font-size:15px;

}

/* ===========================================
FORM
=========================================== */

.form-control,
.form-select{

    border-radius:10px;

    height:46px;

    padding:10px 14px;

}

.form-control:focus,
.form-select:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 .15rem rgba(24,80,88,.2);

}

.form-label{

    font-weight:600;

    margin-bottom:8px;

    color:#495057;

}

/* ===========================================
RESPONSIVE
=========================================== */

@media(max-width:992px){

    .admin-sidebar{

        left:-260px;

    }

    .admin-topbar{

        left:0;

    }

    .admin-content{

        left:0;

    }

    .admin-footer{

        left:0;

    }

}

/* ===========================================
BREADCRUMB
=========================================== */

.breadcrumb{

    margin:0;

    background:none;

    font-size:14px;

}

.breadcrumb-item{

    color:var(--text-light);

}

.breadcrumb-item.active{

    color:var(--text);

    font-weight:600;

}

.breadcrumb-item + .breadcrumb-item::before{

    content:">";

    color:#adb5bd;

}

.breadcrumb a{

    color:var(--text-light);

    text-decoration:none;

}

.breadcrumb a:hover{

    color:var(--primary);

    text-decoration:underline;

}

/* ======================================================
   MATHCLASS CMS ADMIN - RESPONSIVE SIDEBAR
   Tempelkan ke admin/assets/css/admin.css
====================================================== */

.admin-topbar-left {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.admin-topbar-title {
    display: flex;
    align-items: center;
    min-width: 0;
    font-size: 14px;
    font-weight: 600;
}

.admin-sidebar-toggle {
    display: none;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--primary);
    font-size: 25px;
    line-height: 1;
    cursor: pointer;
}

.admin-sidebar-toggle i {
    display: block;
    line-height: 1;
}

.admin-sidebar-close {
    display: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.admin-sidebar-overlay {
    display: none;
}

.admin-logo-link {
    color: inherit;
    text-decoration: none;
}

.admin-logo-link:hover {
    color: inherit;
    text-decoration: none;
}

@media (max-width: 992px) {

    body.sidebar-open {
        overflow: hidden;
    }

    .admin-sidebar {
        left: calc(var(--sidebar-width) * -1);
        transition: left .3s ease;
        box-shadow: 8px 0 25px rgba(0, 0, 0, .12);
    }

    .admin-sidebar.show {
        left: 0;
    }

    .admin-topbar {
        left: 0;
        padding: 0 18px;
    }

    .admin-topbar-left {
        flex: 1;
        min-width: 0;
    }

    .admin-topbar-title {
        white-space: nowrap;
        overflow: hidden;
    }

    .admin-sidebar-toggle {
        display: flex;
    }

    .admin-logo {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
    }

    .admin-sidebar-close {
        display: flex;
    }

    .admin-sidebar-overlay {
        position: fixed;
        inset: 0;
        z-index: 1045;
        display: block;
        background: rgba(0, 0, 0, .35);
        opacity: 0;
        visibility: hidden;
        transition: opacity .3s ease, visibility .3s ease;
    }

    .admin-sidebar-overlay.show {
        opacity: 1;
        visibility: visible;
    }

    .admin-content {
        left: 0;
        padding: 15px;
    }

    .admin-footer {
        left: 0;
    }

}

/* =====================================================
   PESERTA AUTH
===================================================== */

.peserta-login-wrapper {
    width: 100%;
    max-width: 430px;
    margin: 0 auto;
}


/* CARD */

.peserta-login-wrapper .card {
    border-radius: 8px;
}


/* BRAND */

.peserta-login-wrapper .peserta-brand {
    color: #185058;
    font-weight: 700;
    margin-bottom: 4px;
}


/* TITLE */

.peserta-login-wrapper .peserta-auth-title {
    color: #666;
    margin-bottom: 0;
}


/* LABEL */

.peserta-login-wrapper .form-label {
    font-weight: 600;
}


/* INPUT */

.peserta-login-wrapper .form-control {
    min-height: 46px;
}


/* PRIMARY BUTTON */

.peserta-login-wrapper .btn-peserta-primary {
    background: #185058;
    border-color: #185058;
    color: #fff;
}


.peserta-login-wrapper .btn-peserta-primary:hover {
    background: #12434a;
    border-color: #12434a;
    color: #fff;
}


/* REGISTER BUTTON */

.peserta-login-wrapper .btn-peserta-register {
    width: 100%;
}


/* ERROR */

.peserta-login-wrapper .login-alert {
    display: flex;
    align-items: center;
    gap: 8px;

    padding: 10px 12px;
    margin-bottom: 18px;

    border-radius: 6px;
}


.peserta-login-wrapper .login-alert-error {
    background: #fff1f1;
    border: 1px solid #f0b5b5;
    color: #b42318;
}