/* ===============================
   GLOBAL
=============================== */

body{
    background-color:#f8f9fa;
    font-family:'Segoe UI',sans-serif;
    font-size:16px;
    margin:0;
    padding:0;
    overflow-x:hidden;
}

/* ===============================
   MOBILE TOGGLE
=============================== */

.mobile-toggle{
    display:none;
}

/* ===============================
   SIDEBAR
=============================== */

.sidebar{
    background-color:#00008B;
    color:#fff;
    width:220px;
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    padding:20px;
    overflow-y:auto;
    z-index:1000;
    box-shadow:2px 0 10px rgba(0,0,0,.15);
}

.sidebar h4{
    margin-bottom:20px;
    font-weight:600;
}

.sidebar hr{
    border-color:rgba(255,255,255,.3);
}

/* MENU SIDEBAR */

.sidebar a{
    color:#fff;
    text-decoration:none;
    display:flex;
    align-items:center;
    gap:10px;
    margin:15px 0;
    padding:10px 12px;
    border-radius:10px;
    transition:all .25s ease;
    font-size:15px;
}

/* HOVER SIDEBAR */

.sidebar a:hover{
    background:#0d6efd;
    color:#fff;
    transform:translateX(6px);
    box-shadow:0 4px 10px rgba(0,0,0,.2);
}

/* ===============================
   MAIN CONTENT
=============================== */

.main-content,
.container,
.content{
    margin-left:240px;
    padding:30px;
}

/* ===============================
   FORM PAGE
=============================== */

.form-page{

    max-width:900px;

    margin:auto;

}

/* ===============================
   CARD
=============================== */

.card{
    border:none;
    border-radius:18px;
    padding:10px;
    box-shadow:0 4px 15px rgba(0,0,0,.08);
    transition:.3s;
}

.card:hover{
    transform:translateY(-3px);
    box-shadow:0 6px 18px rgba(0,0,0,.12);
}

/* ===============================
   FORM TITLE
=============================== */

.form-page h3{
    font-weight:700;
    margin-bottom:25px;
}

/* ===============================
   TABLE
=============================== */

.table{
    background:#fff;
    border-radius:10px;
    overflow:hidden;
}

.table th{
    vertical-align:middle;
    text-align:center;
}

.table td{
    vertical-align:middle;
}

.table-primary{
    background:#0d6efd !important;
    color:#fff;
}

/* ===============================
   FORM
=============================== */

.form-control,
.form-select{
    border-radius:10px;
    padding:10px;
    font-size:15px;
}

.form-control{
    height:48px;
}

.form-control:focus,
.form-select:focus{
    box-shadow:none;
    border-color:#0d6efd;
}

/* ===============================
   BUTTON
=============================== */

.btn{
    border-radius:10px;
    padding:8px 14px;
    font-size:15px;
    transition:.3s;
    min-width:110px;
}

.btn:hover{
    transform:translateY(-2px);
}

/* ===============================
   BADGE
=============================== */

.badge{
    padding:8px 12px;
    border-radius:8px;
    font-size:13px;
}

/* ===============================
   ALERT
=============================== */

.alert{
    border:none;
    border-radius:12px;
}

/* ===============================
   FOOTER
=============================== */

footer{
    position:fixed;
    bottom:10px;
    left:240px;
    color:#6c757d;
    font-size:.9rem;
}

/* ===============================
   ANIMATION
=============================== */

.main-content,
.container,
.content{
    animation:fadeIn .5s ease-in-out;
}

@keyframes fadeIn{

    from{
        opacity:0;
        transform:translateY(10px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

/* ===============================
   RESPONSIVE TABLE
=============================== */

.table-responsive{
    overflow-x:auto;
}

/* ===============================
   TABLET & MOBILE
=============================== */

@media screen and (max-width:992px){

    /* TOGGLE BUTTON */

    .mobile-toggle{
        display:flex;
        align-items:center;
        justify-content:center;
        position:absolute;
        top:15px;
        left:15px;
        z-index:2000;
        background:#00008B;
        color:#fff;
        border:none;
        width:50px;
        height:50px;
        border-radius:12px;
        font-size:24px;
        box-shadow:0 4px 10px rgba(0,0,0,.2);
    }

    /* SIDEBAR */

    .sidebar{
        left:-250px;
        width:220px !important;
        height:100vh;
        transition:.3s;
        padding-top:80px !important;
    }

    /* SIDEBAR ACTIVE */

    .sidebar.active{
        left:0;
    }

    /* CONTENT */

    .main-content,
    .container,
    .content{
        margin-left:0 !important;
        width:100%;
        padding:80px 15px 15px;
    }

    /* FORM PAGE */

    .form-page{
        max-width:100%;
    }

    /* FOOTER */

    footer{
        position:relative !important;
        left:0 !important;
        bottom:0 !important;
        text-align:center;
        margin-top:20px;
    }

    /* GRID */

    .row .col-md-6,
    .row .col-lg-3,
    .row .col-lg-4{
        width:100%;
    }

    /* TABLE */

    .table{
        font-size:14px;
    }

}

/* ===============================
   MOBILE
=============================== */

@media screen and (max-width:576px){

    body{
        font-size:14px;
    }

    .sidebar{
        padding:15px;
        padding-top:80px !important;
    }

    .sidebar h4{
        font-size:20px;
    }

    .sidebar a{
        font-size:14px;
        margin:10px 0;
    }

    .main-content,
    .container,
    .content{
        padding:80px 15px 15px;
    }

    h3{
        font-size:22px;
    }

    .btn{
        font-size:14px;
        padding:7px 12px;
    }

    .table{
        font-size:13px;
    }

    .card{
        padding:5px;
    }

}

/* ===============================
   PRINT
=============================== */

@media print{

    body{
        background:#fff;
    }

    .sidebar,
    .mobile-toggle,
    .no-print,
    footer{
        display:none !important;
    }

    .main-content,
    .container,
    .content{
        margin:0 !important;
        padding:0 !important;
        width:100%;
    }

    table{
        width:100%;
        border-collapse:collapse;
        font-size:13px;
    }

    table th{
        background:#1565c0 !important;
        color:#fff !important;
        border:1px solid #000 !important;
        print-color-adjust:exact;
        -webkit-print-color-adjust:exact;
    }

    table td{
        border:1px solid #000 !important;
    }

    .badge{
        background:transparent !important;
        color:#000 !important;
        border:none !important;
        font-weight:bold;
        padding:0 !important;
    }

}

/* ===============================
   LOGIN PAGE
=============================== */

.login-page{

    background-image:
    linear-gradient(
        rgba(0,0,0,.20),
        rgba(0,0,0,.20)
    ),
    url("../../background.jpg");

    background-size:cover;

    background-position:center;

    background-repeat:no-repeat;

    min-height:100vh;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:20px;

}

/* BUTTON LOGIN */

.btn-masuk{

    background-color:#00008B;

    color:#ffffff !important;

    padding:12px 0;

    border-radius:15px;

    font-weight:600;

    border:none;

    transition:.3s ease;

    font-size:16px;

}

.btn-masuk:hover{

    background-color:#0000CD;

    color:#ffffff !important;

    transform:translateY(-2px);

}

/* CARD LOGIN */

.login-card{

    background:rgba(255,255,255,.91);

    border-radius:16px;

    box-shadow:0 8px 20px rgba(0,0,0,.15);

    padding:2rem;

    width:100%;

    max-width:400px;

}

/* INPUT LOGIN */

.login-card .form-control{

    border-radius:12px;

    padding:10px;

}

/* TITLE LOGIN */

.login-title{

    font-weight:bold;

    color:#333;

}

/* FOOTER LOGIN */

.footer-copyright{

    position:fixed;

    bottom:15px;

    left:50%;

    transform:translateX(-50%);

    color:white;

    font-size:.9rem;

    font-weight:500;

    text-shadow:0 0 3px rgba(0,0,0,.6);

}

/* MOBILE LOGIN */

@media screen and (max-width:576px){

    .login-card{

        padding:1.5rem;

    }

}