/* =====================================
   GLOBAL
===================================== */

*{
    box-sizing:border-box;
}

body{

    background:
    linear-gradient(135deg,#0d5c2f,#0b7a3f);

    min-height:100vh;

    font-family:'Poppins',sans-serif;

    margin:0;
    padding:0;

    color:#222;

    overflow-x:hidden;
}

/* =====================================
   CONTAINER
===================================== */

.container{

    padding-top:24px;
    padding-bottom:24px;
}

/* =====================================
   LOGIN PAGE
===================================== */

.login-card{

    max-width:560px;

    border:none;

    border-radius:30px;

    overflow:hidden;

    background:white;

    box-shadow:
    0 15px 40px rgba(0,0,0,0.18);
}

.login-card .card-body{
    padding:42px;
}

.login-logo{

    width:100px;

    margin-bottom:10px;
}

.login-title{

    font-size:32px;

    font-weight:800;

    color:#0d6b36;

    margin-bottom:4px;
}

.login-subtitle{

    font-size:21px;

    font-weight:700;

    color:#c59b2b;
}

.login-desc{

    color:#666;

    margin-top:15px;

    font-size:15px;

    line-height:1.7;
}

/* =====================================
   FORM
===================================== */

.form-label{

    font-weight:600;

    color:#0d6b36;

    margin-bottom:8px;
}

.form-control{

    height:56px;

    border-radius:16px;

    border:1px solid #dfe5df;

    padding-left:18px;

    font-size:16px;

    transition:0.3s;
}

.form-control:focus{

    border-color:#128847;

    box-shadow:
    0 0 0 0.2rem rgba(18,136,71,0.18);
}

/* =====================================
   BUTTON LOGIN
===================================== */

.btn-success{

    height:56px;

    border-radius:16px;

    font-size:17px;

    font-weight:600;

    border:none;

    background:
    linear-gradient(135deg,#0d6b36,#128847);

    transition:0.3s;
}

.btn-success:hover{

    transform:translateY(-2px);

    opacity:0.95;
}

/* =====================================
   RESULT PAGE
===================================== */

.result-card{

    background:white;

    border-radius:28px;

    overflow:hidden;

    max-width:950px;

    border:none;

    padding:30px;

    box-shadow:
    0 15px 40px rgba(0,0,0,0.18);
}

/* =====================================
   HEADER
===================================== */

.header-top{
    text-align:center;
}

.logo{

    width:85px;

    margin-bottom:10px;
}

.title{

    font-size:32px;

    font-weight:800;

    color:#0d6b36;

    margin-bottom:4px;

    letter-spacing:0.5px;

    line-height:1.2;
}

.subtitle{

    font-size:21px;

    font-weight:700;

    color:#c59b2b;

    line-height:1.4;
}

/* =====================================
   PREDIKAT
===================================== */

.predikat-box{

    display:inline-block;

    margin-top:18px;

    background:
    linear-gradient(135deg,#f5c542,#d8a90e);

    color:#222;

    padding:10px 22px;

    border-radius:999px;

    font-size:16px;

    font-weight:700;

    box-shadow:
    0 8px 18px rgba(0,0,0,0.12);
}

/* =====================================
   DATA SISWA
===================================== */

.data-card{

    background:#f8faf9;

    border-radius:22px;

    padding:20px;

    margin-top:26px;

    border:
    1px solid #eef3ef;
}

.table{
    margin-bottom:0;
}

.table td,
.table th{

    border:none;

    padding:10px 8px;

    vertical-align:top;
}

.table th{

    width:35%;

    color:#0b5d30;

    font-weight:700;
}

.table td{
    color:#333;
}

/* =====================================
   SUBJECT GRID
===================================== */

.subject-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:20px;

    margin-top:26px;
}

/* =====================================
   SUBJECT CARD
===================================== */

.subject-card{

    border-radius:26px;

    padding:24px;

    color:white;

    position:relative;

    overflow:hidden;

    box-shadow:
    0 10px 30px rgba(0,0,0,0.18);

    transition:0.3s;
}

.subject-card:hover{
    transform:translateY(-4px);
}

/* =====================================
   CARD BACKGROUND
===================================== */

.math-card{

    background:
    linear-gradient(135deg,#0c7c32,#19a34b);
}

.indo-card{

    background:
    linear-gradient(135deg,#0d5b8c,#1d7bc1);
}

/* =====================================
   HEADER SUBJECT
===================================== */

.subject-top{

    display:flex;

    align-items:center;

    gap:14px;
}

/* =====================================
   ICON
===================================== */

.subject-icon{

    width:64px;

    height:64px;

    border-radius:20px;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:30px;

    background:
    rgba(255,255,255,0.18);

    backdrop-filter:blur(8px);

    flex-shrink:0;
}

/* =====================================
   NAMA MAPEL
===================================== */

.subject-name{

    font-size:21px;

    font-weight:700;

    line-height:1.3;
}

/* =====================================
   BADGE KATEGORI
===================================== */

.subject-category{

    display:inline-block;

    margin-top:8px;

    background:
    rgba(255,255,255,0.18);

    padding:6px 14px;

    border-radius:999px;

    font-size:13px;

    font-weight:600;

    letter-spacing:0.3px;
}

/* =====================================
   NILAI
===================================== */

.subject-score{

    font-size:64px;

    font-weight:800;

    margin-top:22px;

    line-height:1;
}

/* =====================================
   KETERANGAN KATEGORI
===================================== */

.kategori-info{

    margin-top:18px;

    background:
    rgba(255,255,255,0.14);

    border-radius:16px;

    padding:14px;

    font-size:12px;

    line-height:1.7;

    border:
    1px solid rgba(255,255,255,0.14);
}

.kategori-title{

    font-size:13px;

    font-weight:700;

    margin-bottom:6px;

    color:#fff;
}

.kategori-info div{
    margin-bottom:3px;
}

.kategori-info b{
    color:#ffe082;
}

/* =====================================
   INFO BOX
===================================== */

.info-box{

    margin-top:24px;

    background:#fff8e7;

    border-left:5px solid #d8a90e;

    padding:16px 18px;

    border-radius:16px;

    color:#6c5500;

    font-size:14px;

    line-height:1.8;
}

/* =====================================
   BUTTON
===================================== */

.btn-kembali{

    display:inline-block;

    background:
    linear-gradient(135deg,#0d6b36,#128847);

    border:none;

    padding:11px 26px;

    border-radius:999px;

    font-weight:600;

    color:white;

    text-decoration:none;

    transition:0.3s;

    box-shadow:
    0 8px 18px rgba(0,0,0,0.12);
}

.btn-kembali:hover{

    opacity:0.92;

    color:white;

    transform:translateY(-2px);
}

/* =====================================
   TABLET
===================================== */

@media(max-width:768px){

    body{
        padding:12px;
    }

    .container{
        padding-top:6px;
        padding-bottom:6px;
    }

    .login-card .card-body{
        padding:28px;
    }

    .login-title{
        font-size:26px;
    }

    .login-subtitle{
        font-size:17px;
    }

    .login-logo{
        width:85px;
    }

    .result-card{

        padding:20px;

        border-radius:22px;
    }

    .title{
        font-size:26px;
    }

    .subtitle{
        font-size:17px;
    }

    .logo{
        width:72px;
    }

    .predikat-box{

        font-size:14px;

        padding:9px 16px;
    }

    .subject-grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .subject-card{
        padding:20px;
        border-radius:22px;
    }

    .subject-top{
        gap:12px;
    }

    .subject-icon{

        width:58px;
        height:58px;

        font-size:28px;

        border-radius:18px;
    }

    .subject-name{
        font-size:18px;
    }

    .subject-category{

        font-size:12px;

        padding:5px 12px;
    }

    .subject-score{

        font-size:50px;

        margin-top:18px;
    }

    .kategori-info{

        margin-top:16px;

        padding:12px;

        font-size:11px;

        line-height:1.6;
    }

    .kategori-title{
        font-size:12px;
    }

    .table th{

        width:42%;

        font-size:13px;
    }

    .table td{
        font-size:13px;
    }

    .info-box{

        font-size:13px;

        line-height:1.7;
    }

}

/* =====================================
   EXTRA SMALL DEVICE
===================================== */

@media(max-width:480px){

    body{
        padding:8px;
    }

    .result-card{

        padding:16px;

        border-radius:18px;
    }

    .data-card{

        padding:14px;

        border-radius:16px;
    }

    .title{

        font-size:22px;
    }

    .subtitle{

        font-size:15px;
    }

    .subject-card{

        padding:16px;

        border-radius:18px;
    }

    .subject-top{
        align-items:flex-start;
    }

    .subject-icon{

        width:52px;
        height:52px;

        font-size:24px;

        border-radius:16px;
    }

    .subject-name{

        font-size:17px;
    }

    .subject-category{

        font-size:11px;

        padding:5px 10px;
    }

    .subject-score{

        font-size:42px;

        margin-top:16px;
    }

    .kategori-info{

        font-size:10.5px;

        padding:10px;

        border-radius:14px;
    }

    .kategori-title{

        font-size:11px;
    }

    .predikat-box{

        font-size:13px;

        padding:8px 14px;
    }

    .table th{

        width:44%;

        font-size:12px;
    }

    .table td{

        font-size:12px;
    }

    .btn-kembali{

        width:100%;

        text-align:center;
    }

}