/* =========================================================
   STYLE.CSS - SISTEM INFORMASI BIMBINGAN KONSELING
   PART 1/3
========================================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    background:#eef3f8;
    font-family:'Segoe UI',sans-serif;
    color:#1e293b;
}

.wrapper{
    display:flex;
}

/* ================= SIDEBAR ================= */

.sidebar{
    position:fixed;
    top:0;
    left:0;
    width:260px;
    height:100vh;
    overflow-y:auto;
    background:linear-gradient(180deg,#1e3a8a,#2563eb);
    transition:all .3s ease;
    box-shadow:5px 0 20px rgba(0,0,0,.1);
    z-index:1000;
}

.sidebar.hide{
    transform:translateX(-260px);
}

.logo{
    padding:28px 20px;
    text-align:center;
    color:#fff;
    border-bottom:1px solid rgba(255,255,255,.15);
}

.logo h3{
    font-weight:700;
    margin-bottom:5px;
}

.logo small{
    color:rgba(255,255,255,.8);
}

.menu{
    list-style:none;
    padding:15px;
}

.menu li{
    margin-bottom:10px;
}

.menu li a{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 14px;
    text-decoration:none;
    color:#fff;
    border-radius:12px;
    transition:.25s;
    font-weight:500;
    line-height:1.4;
    white-space:nowrap;
}

.menu li a i{
    font-size:18px;
    min-width:22px;
    text-align:center;
}

.filter-card{
    padding:20px 24px;
}

.filter-card .row{
    align-items:end;
}

.filter-card .form-label{
    font-weight:600;
    margin-bottom:8px;
    color:#334155;
}

.filter-card .form-control,
.filter-card .form-select{
    height:48px;
}

.filter-card .btn{
    height:48px;
    min-width:120px;
}

.menu li a:hover,
.menu li a.active{
    background:rgba(255,255,255,.18);
    transform:translateX(6px);
}

/* Logout */

.logout-btn{
    width:100%;
    border:none;
    background:none;
    color:white;
    text-align:left;
    padding:14px 18px;
    border-radius:14px;
    transition:.25s;
    font-size:15px;
}

.logout-btn:hover{
    background:rgba(255,255,255,.18);
    transform:translateX(6px);
}

/* ================= CONTENT ================= */

.content{
    margin-left:260px;
    width:calc(100% - 260px);
    transition:.3s ease;
    min-height:100vh;
}

.content.full{
    margin-left:0;
    width:100%;
}

/* ================= TOPBAR ================= */

.topbar{
    height:75px;
    background:#fff;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0 30px;
    position:sticky;
    top:0;
    z-index:999;
    box-shadow:0 5px 20px rgba(0,0,0,.05);
}

#toggleBtn{
    background:none;
    border:none;
    font-size:26px;
    cursor:pointer;
    color:#2563eb;
}

.topbar h4{
    font-size:22px;
    font-weight:700;
    color:#1e293b;
}

.user{
    background:linear-gradient(135deg,#2563eb,#3b82f6);
    color:white;
    padding:10px 18px;
    border-radius:30px;
    font-weight:600;
    box-shadow:0 5px 15px rgba(37,99,235,.25);
}

/* ================= CARD ================= */

.card-custom{
    background:white;
    border:none;
    border-radius:20px;
    padding:25px;
    box-shadow:0 8px 25px rgba(0,0,0,.06);
}

.card-custom h2,
.card-custom h5{
    font-weight:700;
    font-size:24px;
    color:#1e293b;
    margin-bottom:20px;
    border-bottom:1px solid #e2e8f0;
    padding-bottom:10px;
}

/* ================= STAT CARD ================= */

.stat-card{
    background:linear-gradient(180deg,#1e3a8a,#2563eb);
    border-radius:20px;
    padding:18px 22px;
    min-height:120px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    box-shadow:0 10px 25px rgba(0,0,0,.06);
    transition:.3s;
    overflow:hidden;
    color:white;
}

.stat-card:hover{
    transform:translateY(-6px);
    box-shadow:0 15px 30px rgba(0,0,0,.12);
}

.stat-card h6{
    font-size:15px;
    margin-bottom:10px;
    opacity:.9;
}

.stat-card div{

    flex:1;

}

.stat-card h6{

    color:rgba(255,255,255,.85);
    font-size:15px;
    margin-bottom:10px;

}

.stat-card h2{

    margin:0;
    font-size:24px;
    color:white;
    font-weight:700;
    line-height:1.2;

}

.stat-card p{

    margin:0;
    font-size:15px;

}

.stat-card i{

    font-size:36px;
    opacity:.85;

}

/* warna */

.stat-blue{
    background:linear-gradient(135deg,#2563eb,#60a5fa);
}

.stat-green{
    background:linear-gradient(135deg,#16a34a,#4ade80);
}

.stat-orange{
    background:linear-gradient(135deg,#ea580c,#fb923c);
}

.stat-red{
    background:linear-gradient(135deg,#dc2626,#f87171);
}

.stat-purple{
    background:linear-gradient(135deg,#7c3aed,#a855f7);
}

/* =========================================================
   STYLE.CSS - SISTEM INFORMASI BIMBINGAN KONSELING
   PART 2/3
========================================================= */


/* ================= SEARCH ================= */

.search-box{
    width:320px;
}

.search-box .form-control{
    border-radius:30px;
    padding:10px 18px;
    border:1px solid #dbe4ef;
    box-shadow:none;
}

.search-box .form-control:focus{
    border-color:#2563eb;
    box-shadow:0 0 0 .2rem rgba(37,99,235,.12);
}


/* ================= TABLE ================= */

.table{
    background:white;
    border-radius:18px;
    overflow:hidden;
    margin-bottom:0;
}

.table thead{
    background:#2563eb;
}

.table thead th{
    background:#2563eb;
    color:white;
    border:none;
    padding:16px;
    font-weight:600;
}

.table tbody td{
    vertical-align:middle;
    padding:14px 16px;
}

.table tbody tr{
    transition:.25s;
}

.table tbody tr:nth-child(even){
    background:#f8fafc;
}

.table tbody tr:hover{
    background:#eaf3ff;
}


/* ================= BUTTON ================= */

.btn{
    border-radius:10px;
    font-weight:600;
    transition:.25s;
}

.btn:hover{
    transform:translateY(-2px);
}

.btn-sm{
    padding:6px 14px;
}

.btn-primary{
    background:#2563eb;
    border:none;
}

.btn-primary:hover{
    background:#1d4ed8;
}

.btn-success{
    border:none;
    background:#16a34a;
}

.btn-success:hover{
    background:#15803d;
}

.btn-warning{
    border:none;
    color:white;
    background:#f59e0b;
}

.btn-warning:hover{
    background:#d97706;
}

.btn-danger{
    border:none;
    background:#ef4444;
}

.btn-danger:hover{
    background:#dc2626;
}

.btn-info{
    border:none;
    background:#0ea5e9;
    color:white;
}

.btn-info:hover{
    background:#0284c7;
}


/* ================= FORM ================= */

.form-control,
.form-select{
    border-radius:12px;
    border:1px solid #d6dde8;
    padding:10px 14px;
}

.form-control:focus,
.form-select:focus{
    border-color:#2563eb;
    box-shadow:0 0 0 .2rem rgba(37,99,235,.12);
}


/* ================= MODAL ================= */

.modal-content{
    border:none;
    border-radius:20px;
    overflow:hidden;
}

.modal-header{
    border-bottom:1px solid #eef2f7;
    background:#f8fafc;
}

.modal-footer{
    border-top:1px solid #eef2f7;
}


/* ================= BADGE ================= */

.badge{
    padding:8px 14px;
    border-radius:20px;
    font-size:13px;
}

.badge-admin{
    background:#2563eb;
    color:white;
}

.badge-guru{
    background:#16a34a;
    color:white;
}

.badge-kepsek{
    background:#f59e0b;
    color:white;
}


/* ================= ALERT ================= */

.alert{
    border:none;
    border-radius:14px;
}


/* ================= PAGINATION ================= */

.pagination .page-link{
    border:none;
    margin:0 3px;
    border-radius:10px;
    color:#2563eb;
}

.pagination .page-item.active .page-link{
    background:#2563eb;
}


/* ================= SCROLLBAR ================= */

::-webkit-scrollbar{
    width:8px;
}

::-webkit-scrollbar-track{
    background:#eef3f8;
}

::-webkit-scrollbar-thumb{
    background:#2563eb;
    border-radius:20px;
}

::-webkit-scrollbar-thumb:hover{
    background:#1d4ed8;
}


/* ================= ANIMATION ================= */

.card-custom,
.stat-card,
.table,
.btn{
    transition:.3s;
}


/* ================= SHADOW ================= */

.shadow-soft{
    box-shadow:0 8px 25px rgba(0,0,0,.06);
}

.shadow-hover:hover{
    box-shadow:0 12px 30px rgba(0,0,0,.12);
}

/* =========================================================
   STYLE.CSS - SISTEM INFORMASI BIMBINGAN KONSELING
   PART 3/3
========================================================= */


/* ================= DASHBOARD CARD ================= */

.dashboard-title{
    font-size:28px;
    font-weight:700;
    color:#1e293b;
    margin-bottom:25px;
}

.dashboard-subtitle{
    color:#64748b;
    margin-top:-10px;
    margin-bottom:25px;
}


/* ================= ICON BOX ================= */

.icon-box{
    width:65px;
    height:65px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.18);
}

.icon-box i{
    font-size:32px;
    color:white;
}


/* ================= CARD HEADER ================= */

.card-header-custom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
}


/* ================= INPUT GROUP ================= */

.input-group-text{
    border-radius:12px 0 0 12px;
    background:#2563eb;
    color:white;
    border:none;
}

.input-group .form-control{
    border-radius:0 12px 12px 0;
}


/* ================= DROPDOWN ================= */

.dropdown-menu{
    border:none;
    border-radius:15px;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
}

.dropdown-item{
    padding:10px 18px;
}

.dropdown-item:hover{
    background:#eef5ff;
}


/* ================= CARD STAT NUMBER ================= */

.stat-card h2{
    letter-spacing:1px;
}


/* ================= TABLE BUTTON ================= */

.table .btn{
    margin:2px;
}


/* ================= PAGE TITLE ================= */

.page-title{
    font-size:26px;
    font-weight:700;
    color:#1e293b;
}

.page-subtitle{
    color:#64748b;
}


/* ================= CONTAINER ================= */

.container-fluid{
    padding:28px;
}


/* ================= LINK ================= */

a{
    transition:.25s;
}

a:hover{
    text-decoration:none;
}


/* ================= FOCUS ================= */

button:focus,
.btn:focus{
    box-shadow:none !important;
}


/* ================= RESPONSIVE ================= */

@media(max-width:992px){

.sidebar{

    transform:translateX(-260px);

}

.sidebar.show{

    transform:translateX(0);

}

.content{

    width:100%;

    margin-left:0;

}

.topbar h4{

    font-size:18px;

}

.search-box{

    width:100%;

}

.stat-card{

    margin-bottom:20px;

}

}


/* ================= MOBILE ================= */

@media(max-width:768px){

.topbar{

    padding:0 15px;

}

.user{

    display:none;

}

.logo h3{

    font-size:24px;

}

.card-custom{

    padding:18px;

}

.container-fluid{

    padding:15px;

}

.table{

    font-size:14px;

}

}


/* ================= SMOOTH ================= */

html{

    scroll-behavior:smooth;

}


/* ================= SELECTION ================= */

::selection{

    background:#2563eb;

    color:white;

}


/* ================= FOOTER ================= */

.footer{

    text-align:center;

    color:#64748b;

    margin-top:30px;

    padding:20px;

}


/* ================= END ================= */

/* ================= CARD-STAT (Dashboard Kepala Sekolah) ================= */

.card-stat{
    background:linear-gradient(180deg,#1e3a8a,#2563eb);
    color:#fff;
    border-radius:20px;
    padding:25px;
    min-height:150px;
    box-shadow:0 10px 25px rgba(37,99,235,.25);
    transition:.3s;
}

.card-stat:hover{
    transform:translateY(-5px);
    box-shadow:0 18px 35px rgba(37,99,235,.35);
}

.card-stat h6{
    color:rgba(255,255,255,.85);
    font-size:15px;
    margin-bottom:12px;
}

.card-stat h1{
    color:#fff;
    font-size:42px;
    font-weight:700;
    margin:0;
}

.card-stat h5{
    color:#fff;
    font-size:24px;
    font-weight:600;
    margin:0;
}

/* ==========================================================
                        LOGIN PAGE
========================================================== */

.login-page{
    background:linear-gradient(180deg,#1e3a8a,#2563eb);
    min-height:100vh;
    display:flex;
    justify-content:center;
    align-items:center;
}

.login-container{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:20px;
}

.login-card{
    width:420px;
    background:#fff;
    border-radius:25px;
    padding:40px;
    box-shadow:0 20px 40px rgba(0,0,0,.15);
}

.login-logo{
    display:flex;
    justify-content:center;
    align-items:center;
    margin-bottom:20px;
}

.logo-img{

    width:250px;

    height:250px;

    object-fit:contain;

}

.login-logo i{
    color:#fff;
    font-size:40px;
}

.login-title{
    text-align:center;
    font-weight:700;
    color:#1e293b;
    margin-bottom:5px;
}

.login-subtitle{
    text-align:center;
    color:#64748b;
    margin-bottom:30px;
}

.login-card .form-label{
    font-weight:600;
    color:#334155;
}

.login-card .input-group-text{
    background:#2563eb;
    color:#fff;
    border:none;
    border-radius:12px 0 0 12px;
}

.login-card .form-control{
    height:50px;
    border-radius:0 12px 12px 0;
    border:1px solid #dbe4ef;
}

.login-card .form-control:focus{
    border-color:#2563eb;
    box-shadow:0 0 0 .2rem rgba(37,99,235,.15);
}

.btn-login{
    width:100%;
    height:50px;
    border:none;
    border-radius:12px;
    color:white;
    font-weight:600;
    background:linear-gradient(180deg,#1e3a8a,#2563eb);
    transition:.3s;
}

.btn-login:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 25px rgba(37,99,235,.30);
    color:white;
}

.login-footer{
    text-align:center;
    margin-top:25px;
    color:#94a3b8;
    font-size:14px;
}

@media(max-width:576px){

.login-card{

    width:100%;

    padding:30px 20px;

}

.login-logo{

    width:75px;

    height:75px;

}

.login-logo i{

    font-size:32px;

}

.login-title{

    font-size:24px;

}

}

/* ================= DASHBOARD FILTER ================= */

.card-custom form .form-select{

    width:170px;

    border-radius:12px;

    border:1px solid #dbe4ef;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}

.card-custom form .form-select:hover{

    border-color:#2563eb;

}

.card-custom form .form-select:focus{

    border-color:#2563eb;

    box-shadow:0 0 0 .2rem rgba(37,99,235,.15);

}