/* =========================================
   GLOBAL
========================================= */

body{
    background:#f1f5f9;
    font-family:'Segoe UI',sans-serif;
    padding-bottom:100px;
    margin:0;
}

/* =========================================
   HEADER
========================================= */

.header{
    background:linear-gradient(135deg,#166534,#15803d);
    color:white;
    padding:25px;
    border-radius:0 0 25px 25px;
    box-shadow:0 5px 20px rgba(0,0,0,0.2);
    text-align:center;
}

.header img{
    width:80px;
    margin-bottom:10px;
}

.header h3{
    font-size:22px;
    font-weight:bold;
    margin-bottom:5px;
}

.header p{
    margin:0;
    font-size:14px;
    opacity:0.9;
}

/* =========================================
   WELCOME
========================================= */

.welcome-card{
    background:white;
    margin-top:-20px;
    border-radius:20px;
    padding:20px;
    box-shadow:0 5px 15px rgba(0,0,0,0.1);
}

.welcome-card h5{
    font-weight:bold;
    color:#1e293b;
}

/* =========================================
   STATUS
========================================= */

.status-card{
    background:linear-gradient(135deg,#2563eb,#1d4ed8);
    color:white;
    border-radius:20px;
    padding:20px;
    margin-top:20px;
    box-shadow:0 5px 15px rgba(0,0,0,0.15);
}

/* =========================================
   MENU CARD
========================================= */

.menu-card{
    background:white;
    border-radius:20px;
    padding:20px;
    text-align:center;
    box-shadow:0 5px 15px rgba(0,0,0,0.08);
    transition:0.3s;
    height:100%;
}

.menu-card:hover{
    transform:translateY(-5px);
}

.menu-card i{
    font-size:35px;
    color:#15803d;
    margin-bottom:10px;
}

.menu-card h6{
    font-weight:bold;
    color:#1e293b;
}

.menu-link{
    text-decoration:none;
}

/* =========================================
   BOTTOM NAV
========================================= */

.bottom-nav{
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    background:white;
    padding:12px;
    display:flex;
    justify-content:space-around;
    box-shadow:0 -5px 15px rgba(0,0,0,0.1);
}

.bottom-nav a{
    text-decoration:none;
    color:#15803d;
    text-align:center;
    font-size:13px;
}

.bottom-nav i{
    display:block;
    font-size:22px;
}

/* =========================================
   TOPBAR
========================================= */

.topbar{
    background:white;
    padding:15px 20px;
    border-radius:15px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
    box-shadow:0 2px 10px rgba(0,0,0,0.08);
}

.topbar-title{
    display:flex;
    align-items:center;
    gap:15px;
}

.notification-icon{
    font-size:22px;
    color:#15803d;
}

/* =========================================
   HISTORY CARD
========================================= */

.history-card{
    background:white;
    padding:20px;
    border-radius:20px;
    margin-bottom:20px;
    box-shadow:0 5px 15px rgba(0,0,0,0.08);
}

.history-card h5{
    font-weight:bold;
    color:#166534;
}

/* =========================================
   LANDING PAGE
========================================= */

.landing-page{
    margin:0;
    padding:0;
    background:
    linear-gradient(
    rgba(0,0,0,0.45),
    rgba(0,0,0,0.45)
    ),
    url('../img/background-school.jpg');

    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;

    min-height:100vh;

    display:flex;
    justify-content:center;
    align-items:center;

    color:white;
}

.landing-overlay{
    width:100%;
    padding:20px;
    text-align:center;
}

.landing-content{
    max-width:500px;
    margin:auto;
    background:rgba(0,0,0,0.45);
    padding:40px;
    border-radius:20px;
    backdrop-filter:blur(5px);
}

.landing-logo{
    width:120px;
    max-width:100%;
    margin-bottom:20px;
}

.judul-utama{
    font-size:34px;
    font-weight:bold;
    margin-bottom:5px;
}

.judul-sekolah{
    font-size:56px;
    font-weight:bold;
    margin-bottom:20px;
}

.landing-button{
    display:inline-block;
    padding:15px 35px;
    background:#16a34a;
    color:white;
    text-decoration:none;
    border-radius:12px;
    font-size:18px;
    font-weight:bold;
}

/* =========================================
   LOGIN FINAL PROFESSIONAL
========================================= */

.login-body{

    background:
    linear-gradient(
    135deg,
    #0f172a,
    #1e3a8a,
    #2563eb
    );

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:30px 15px;

    overflow-y:auto;
}

.login-container{

    width:100%;

    display:flex;
    justify-content:center;
    align-items:center;

    padding:20px;
}

.login-card{

    width:100%;
    max-width:520px;

    background:rgba(255,255,255,0.12);

    backdrop-filter:blur(12px);

    border-radius:30px;

    padding:50px;

    margin:20px 0;

    box-shadow:
    0 15px 40px rgba(0,0,0,0.35);

    border:1px solid rgba(255,255,255,0.15);
}

.login-logo{

    width:150px;

    display:block;

    margin:0 auto 25px auto;
}

.login-title{

    text-align:center;

    color:white;

    font-size:54px;

    font-weight:700;

    line-height:1.1;

    margin-bottom:10px;
}

.login-school{

    text-align:center;

    color:#4ade80;

    font-size:42px;

    font-weight:800;

    margin-bottom:10px;
}

.login-subtitle{

    text-align:center;

    color:#e2e8f0;

    font-size:20px;

    margin-bottom:40px;
}

.form-label{

    color:white;

    font-weight:600;

    margin-bottom:10px;
}

.form-control{

    height:60px;

    border-radius:18px;

    border:none;

    font-size:18px;

    padding-left:20px;

    background:rgba(255,255,255,0.92);
}

.form-control:focus{

    box-shadow:
    0 0 0 4px rgba(59,130,246,0.35);
}

.btn-success{

    height:60px;

    border-radius:18px;

    font-size:20px;

    font-weight:700;

    background:#16a34a;

    border:none;

    transition:0.3s;
}

.btn-success:hover{

    background:#15803d;

    transform:translateY(-2px);
}

/* =========================================
   SISTEM PANITIA FINAL
========================================= */

.page-wrapper{
    display:flex;
    min-height:100vh;
}

/* SIDEBAR */

.sidebar{

    width:260px;

    height:100vh;

    background:#0d6efd;

    position:fixed;

    top:0;
    left:0;

    overflow-y:auto;

    transition:0.3s;

    z-index:999;
}

.sidebar-logo{

    text-align:center;

    padding:25px 15px;

    border-bottom:1px solid
    rgba(255,255,255,0.2);
}

.sidebar-logo img{

    width:80px;
    height:80px;
}

.sidebar-logo h4{

    color:white;

    margin-top:10px;

    font-size:22px;

    font-weight:bold;
}

.sidebar-menu{

    padding-top:15px;
}

.sidebar-menu a{

    display:block;

    color:white;

    text-decoration:none;

    padding:15px 25px;

    font-size:16px;

    transition:0.3s;
}

.sidebar-menu a:hover{

    background:rgba(255,255,255,0.2);
}

/* MAIN */

.main-panel{

    margin-left:260px;

    width:100%;

    padding:25px;

    background:#f4f6f9;

    min-height:100vh;
}

/* CONTENT */

.content-card{

    background:white;

    border-radius:25px;

    padding:35px;

    box-shadow:0 5px 20px rgba(0,0,0,0.05);

    margin-bottom:30px;
}

/* TABLE */

.table-responsive{

    border-radius:20px;

    overflow:hidden;
}

.table thead{

    background:#212529;

    color:white;
}

/* QUICK MENU */

.quick-menu-card{

    background:#ffffff;

    border-radius:18px;

    padding:30px 20px;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    text-decoration:none;

    color:#222;

    font-weight:600;

    min-height:180px;

    box-shadow:0 5px 15px rgba(0,0,0,0.08);

    transition:0.3s;
}

.quick-menu-card:hover{

    transform:translateY(-5px);

    background:#0d6efd;

    color:white;
}

.quick-menu-card i{

    font-size:45px;

    margin-bottom:15px;
}

/* =========================================
   RESPONSIVE
========================================= */

@media(max-width:768px){

    .login-card{

        padding:35px 25px;

        border-radius:25px;
    }

    .login-logo{

        width:120px;
    }

    .login-title{

        font-size:40px;
    }

    .login-school{

        font-size:30px;
    }

    .login-subtitle{

        font-size:16px;
    }

    .sidebar{

        left:-260px;
    }

    .sidebar.show{

        left:0;
    }

    .main-panel{

        margin-left:0;

        padding:15px;
    }

    .content-card{

        padding:20px;
    }

    .topbar{

        flex-direction:column;

        align-items:flex-start;

        gap:10px;
    }

    .table th,
    .table td{

        font-size:13px;

        white-space:nowrap;
    }

}
/* DASHBOARD GRID */

.dashboard-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:20px;
    margin-top:20px;
}

.dashboard-card{
    background:#ffffff;
    border-radius:20px;
    padding:25px;
    box-shadow:0 5px 15px rgba(0,0,0,0.08);
    transition:0.3s;
}

.dashboard-card:hover{
    transform:translateY(-5px);
}

.dashboard-icon{
    font-size:40px;
    color:#2563eb;
    margin-bottom:15px;
}

.dashboard-card h2{
    font-size:38px;
    font-weight:700;
    margin-bottom:10px;
}

.dashboard-card p{
    color:#555;
    margin:0;
}

/* QUICK MENU */

.quick-menu-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:20px;
}

.quick-card{
    background:#f8fafc;
    border-radius:18px;
    padding:30px 20px;
    text-align:center;
    text-decoration:none;
    color:#111827;
    transition:0.3s;
    border:1px solid #e5e7eb;
}

.quick-card:hover{
    background:#2563eb;
    color:white;
    transform:translateY(-5px);
}

.quick-card i{
    font-size:40px;
    margin-bottom:15px;
    display:block;
}

/* CONTENT AREA */

.content-area{
    padding:25px;
}

.content-card{
    background:white;
    border-radius:20px;
    padding:25px;
    box-shadow:0 5px 15px rgba(0,0,0,0.08);
}
/* =========================
   MENU DASHBOARD SISWA
========================= */

.menu-link{
    text-decoration: none;
}

.menu-card{
    background: #ffffff;
    border-radius: 22px;
    padding: 30px 20px;
    text-align: center;
    transition: 0.3s ease;
    box-shadow: 0 4px 18px rgba(0,0,0,0.06);
    height: 100%;
}

.menu-card:hover{
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.12);
}

.menu-card i{
    font-size: 34px;
    color: #16a34a;
    margin-bottom: 12px;
}

.menu-card h6{
    color: #1e293b;
    font-size: 15px;
    font-weight: 700;
    margin: 0;
}
/* =========================
   HEADER SISWA
========================= */

.header{
    background: linear-gradient(135deg,#166534,#16a34a);
    padding: 30px 20px;
    text-align: center;
    color: white;
    border-radius: 0 0 30px 30px;
    margin-bottom: 25px;
}

.header img{
    width: 70px;
    margin-bottom: 10px;
}

.header h3{
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 5px;
}

.header p{
    font-size: 14px;
    opacity: 0.9;
}
/* =========================
   STATUS CARD
========================= */

.status-card{
    background: linear-gradient(135deg,#2563eb,#1d4ed8);
    color: white;
    border-radius: 24px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 6px 20px rgba(37,99,235,0.25);
}

.status-card h5{
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 8px;
}

.status-card p{
    margin: 0;
    font-size: 14px;
}
/* =========================
   WELCOME CARD
========================= */

.welcome-card{
    background: #ffffff;
    padding: 20px;
    border-radius: 24px;
    margin-top: -20px;
    margin-bottom: 20px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}

.welcome-card h5{
    font-size: 18px;
    font-weight: 700;
    color: #0f172a;
}

.welcome-card p{
    font-size: 14px;
    color: #475569;
    margin: 0;
}
/* =========================
   FORM MODERN SISWA
========================= */

.form-label{
    font-size: 15px;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 8px;
    display: block;
}

.form-control,
.form-select{
    height: 55px;
    border-radius: 14px;
    border: 2px solid #dbe2ea;
    padding: 12px 16px;
    font-size: 15px;
    background: #ffffff;
    transition: 0.3s ease;
    box-shadow: none;
}

textarea.form-control{
    height: auto;
    min-height: 140px;
}

.form-control:focus,
.form-select:focus{
    border-color: #2563eb;
    box-shadow: 0 0 0 4px rgba(37,99,235,0.15);
}

.form-control::placeholder{
    color: #94a3b8;
    font-size: 14px;
}

.form-group{
    margin-bottom: 20px;
}

/* BUTTON */

.btn-success{
    height: 55px;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 700;
}

/* CARD FORM */

.form-card{
    background: #ffffff;
    padding: 24px;
    border-radius: 24px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}