@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;700;800&display=swap');

:root{

--primary:#2563eb;
--primary2:#1d4ed8;

--glass:rgba(255,255,255,0.08);

--border:rgba(255,255,255,0.12);

--shadow:
0 10px 40px rgba(0,0,0,0.45);

}

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{

font-family:'DM Sans', sans-serif;

min-height:100vh;

background:
linear-gradient(rgba(0,0,0,0.82), rgba(0,0,0,0.92)),
url('images/bg-jb.jpg');

background-size:cover;
background-position:center;
background-attachment:fixed;

color:white;

overflow-x:hidden;

}

/* PARTICLES */

.particles::before,
.particles::after{

content:'';

position:fixed;

width:500px;
height:500px;

border-radius:50%;

filter:blur(160px);

z-index:-1;

}

.particles::before{

background:#2563eb;

top:-150px;
left:-150px;

opacity:0.15;

animation:float1 10s infinite alternate;

}

.particles::after{

background:#9333ea;

bottom:-150px;
right:-150px;

opacity:0.12;

animation:float2 12s infinite alternate;

}

@keyframes float1{

0%{
transform:translateY(0px);
}

100%{
transform:translateY(70px);
}

}

@keyframes float2{

0%{
transform:translateX(0px);
}

100%{
transform:translateX(-70px);
}

}

/* CONTAINER */

.container{

width:92%;
max-width:1200px;

margin:auto;

}

/* HEADER */

header{

position:sticky;
top:0;

padding:18px 0;

background:rgba(0,0,0,0.25);

backdrop-filter:blur(12px);

border-bottom:
1px solid rgba(255,255,255,0.08);

z-index:999;

}

.navbar{

display:flex;
justify-content:space-between;
align-items:center;

gap:20px;

flex-wrap:wrap;

}

.logo-wrapper{

display:flex;
align-items:center;

gap:0px;

}

.logo{

width:90px;
height:78px;

background:clear;

padding:-5px;

border-radius:18px;

object-fit:contain;

transition:0.3s;

}

.logo:hover{

transform:translateY(-5px);

}

.brand h1{

font-size:28px;
font-weight:800;

letter-spacing:1px;

}

.brand p{

margin-top:0px;

color:#d1d5db;

}

.nav-badge{

padding:12px 20px;

border-radius:50px;

background:
rgba(37,99,235,0.15);

border:
1px solid rgba(59,130,246,0.3);

font-size:13px;
font-weight:700;

backdrop-filter:blur(10px);

}

/* HERO */

.hero{

padding:90px 0;

}

.hero-content{

text-align:center;

}

.hero-badge{

display:inline-block;

padding:10px 20px;

border-radius:50px;

background:rgba(255,255,255,0.08);

border:
1px solid rgba(255,255,255,0.08);

font-size:13px;
font-weight:700;

margin-bottom:25px;

}

.hero h2{

font-size:clamp(42px, 8vw, 92px);

font-weight:800;

line-height:1.1;

margin-bottom:20px;

text-shadow:
0 0 25px rgba(255,255,255,0.15),
0 0 50px rgba(37,99,235,0.35);

}

.hero-description{

max-width:850px;

margin:auto;

line-height:1.9;

font-size:17px;

color:#d1d5db;

}

.hero-description strong{

color:#60a5fa;

font-weight:800;

font-size:30px;

display:block;

margin-bottom:10px;

text-shadow:
0 0 15px rgba(96,165,250,0.35);

}

/* SEARCH CARD */

.search-card{

margin-top:50px;

padding:40px;

border-radius:32px;

background:var(--glass);

border:1px solid var(--border);

backdrop-filter:blur(16px);

box-shadow:var(--shadow);

}

/* SEARCH HEADER */

.search-header{

text-align:center;

margin-bottom:30px;

}

.search-icon-big{

width:80px;
height:80px;

margin:auto auto 20px;

display:flex;
align-items:center;
justify-content:center;

border-radius:50%;

background:
linear-gradient(
135deg,
#2563eb,
#1d4ed8
);

font-size:34px;

box-shadow:
0 10px 30px rgba(37,99,235,0.35);

animation:floatSearch 3s ease-in-out infinite;

}

@keyframes floatSearch{

0%{
transform:translateY(0px);
}

50%{
transform:translateY(-8px);
}

100%{
transform:translateY(0px);
}

}

.search-header h3{

font-size:30px;
font-weight:800;

margin-bottom:10px;

}

.search-header p{

color:#d1d5db;

font-size:15px;

}

/* SEARCH BOX */

.search-box{

display:flex;

flex-direction:column;

gap:18px;

align-items:center;

}

.input-wrapper{

position:relative;

width:100%;

max-width:750px;

margin:auto;

text-align:center;

}

.search-icon{

position:absolute;

top:50%;
left:25px;

transform:translateY(-50%);

font-size:22px;

opacity:0.8;

}

.search-box input{

width:100%;

height:72px;

padding:0 20px;

border:none;
outline:none;

border-radius:20px;

background:rgba(255,255,255,0.08);

color:white;

font-size:18px;

text-align:center;

transition:0.3s;

}

.search-box input::placeholder{

text-align:center;

color:#d1d5db;

}

.search-box input:focus{

background:rgba(255,255,255,0.12);

box-shadow:
0 0 0 3px rgba(37,99,235,0.25);

}

.search-box button{

width:100%;

max-width:320px;

height:65px;

padding:0 35px;

border:none;

border-radius:18px;

background:
linear-gradient(
135deg,
#2563eb,
#1d4ed8
);

color:white;

font-size:16px;
font-weight:700;

letter-spacing:1px;

cursor:pointer;

transition:0.3s;

}

.search-box button:hover{

transform:
translateY(-3px)
scale(1.02);

box-shadow:
0 10px 30px rgba(37,99,235,0.4);

}

.search-box button:active{

transform:scale(0.98);

}

.small-info{

margin-top:18px;

font-size:14px;

color:#d1d5db;

text-align:center;

}

/* RESULT */

.hidden-result{
display:none;
}

.show-result{

display:block;

animation:showResult 0.6s ease;

}

@keyframes showResult{

from{
opacity:0;
transform:translateY(40px);
}

to{
opacity:1;
transform:translateY(0);
}

}

.result-card{

margin-top:40px;

padding:35px;

border-radius:30px;

background:rgba(255,255,255,0.07);

border:1px solid rgba(255,255,255,0.08);

backdrop-filter:blur(16px);

box-shadow:var(--shadow);

}

.result-top{

display:flex;
justify-content:space-between;
align-items:center;

gap:20px;

flex-wrap:wrap;

margin-bottom:35px;

}

.status-box{

/* STATUS TIDAK LAYAK */

.status-box.not-layak{

/* STATUS TUNGGU SMS */

.status-box.pending{

background:
rgba(250,204,21,0.15) !important;

border:
1px solid rgba(250,204,21,0.4) !important;

color:#fde047 !important;

box-shadow:
0 0 25px rgba(250,204,21,0.45) !important;

animation:pulseYellow 2s infinite;

}    

@keyframes pulseYellow{

0%{

box-shadow:
0 0 10px rgba(250,204,21,0.25);

}

50%{

box-shadow:
0 0 35px rgba(250,204,21,0.75);

}

100%{

box-shadow:
0 0 10px rgba(250,204,21,0.25);

}

}

background:
rgba(239,68,68,0.15);

border:
1px solid rgba(239,68,68,0.4);

color:#f87171;

box-shadow:
0 0 25px rgba(239,68,68,0.25);

animation:none;

background:
rgba(239,68,68,0.15);

color:#f87171;

box-shadow:
0 0 25px rgba(239,68,68,0.45);

}

padding:14px 24px;

border-radius:50px;

background:
rgba(34,197,94,0.15);

border:
1px solid rgba(34,197,94,0.3);

color:#4ade80;

font-weight:800;

animation:pulseLive 1.8s infinite;

box-shadow:
0 0 20px rgba(34,197,94,0.25);

}

@keyframes pulseLive{

0%{
transform:scale(1);
box-shadow:0 0 10px rgba(34,197,94,0.25);
}

50%{
transform:scale(1.05);
box-shadow:0 0 35px rgba(34,197,94,0.6);
}

100%{
transform:scale(1);
box-shadow:0 0 10px rgba(34,197,94,0.25);
}

}

/* INFO GRID */

.info-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(250px,1fr));

gap:20px;

}

.info-item{

padding:22px;

border-radius:22px;

background:rgba(255,255,255,0.05);

border:1px solid rgba(255,255,255,0.08);

transition:0.3s;

}

.info-item:hover{

transform:translateY(-5px);

background:rgba(255,255,255,0.08);

}

.info-item label{

display:block;

font-size:13px;

margin-bottom:10px;

color:#cbd5e1;

}

.info-item h4{

font-size:18px;
font-weight:700;

line-height:1.6;

}

/* NOTICE */

.notice{

margin-top:35px;

padding:30px;

border-radius:24px;

background:rgba(255,255,255,0.05);

border:
1px solid rgba(255,255,255,0.08);

text-align:left;

}

.notice h4{

margin-bottom:18px;

font-size:22px;

}

.notice ul{

padding-left:20px;

line-height:2;

color:#d1d5db;

}

/* EXTRA */

.extra-section{

padding:40px 0 80px;

}

.extra-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(280px,1fr));

gap:25px;

}

.extra-card{

padding:30px;

border-radius:28px;

background:rgba(255,255,255,0.06);

border:
1px solid rgba(255,255,255,0.08);

transition:0.3s;

}

.extra-card:hover{

transform:translateY(-6px);

background:rgba(255,255,255,0.08);

}

.icon-circle{

width:60px;
height:60px;

display:flex;
align-items:center;
justify-content:center;

border-radius:50%;

background:
linear-gradient(
135deg,
#2563eb,
#1d4ed8
);

font-size:24px;

margin-bottom:20px;

}

/* LINK */

.portal-link{

color:#60a5fa;

font-weight:700;

text-decoration:none;

word-break:break-word;

transition:0.3s;

}

.portal-link:hover{

color:white;

text-shadow:
0 0 15px rgba(96,165,250,0.8);

}

.tick-circle{

display:inline-flex;

align-items:center;
justify-content:center;

width:28px;
height:28px;

border:3px solid #2563eb;

border-radius:50%;

color:#2563eb;

font-weight:900;

font-size:14px;

margin-right:12px;

filter:
drop-shadow(0 0 8px rgba(37,99,235,0.45));

}
/* FOOTER */

footer{

padding:60px 0 30px;

background:rgba(0,0,0,0.35);

border-top:
1px solid rgba(255,255,255,0.08);

}

.footer-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(250px,1fr));

gap:30px;

margin-bottom:40px;

}

.footer-grid h3{

margin-bottom:15px;

font-size:22px;


}

.footer-grid p{

line-height:2;

color:#d1d5db;

}

.copyright{

padding-top:25px;

border-top:
1px solid rgba(255,255,255,0.08);

text-align:center;

color:#9ca3af;

}

/* MOBILE */

@media(max-width:768px){

.button-group{

display:flex;

flex-direction:row;

gap:10px;

}

#clearBtn{

width:100%;

}

.hero{
padding:50px 0;
}

.hero h2{

font-size:42px;

line-height:1.1;

}

.hero-description{
font-size:15px;
}

.logo{
width:55px;
height:55px;
}

.brand h1{
font-size:20px;
}

.brand p{
font-size:13px;
}

.search-card{
padding:25px;
}

.result-card{
padding:22px;
}

.result-top{

flex-direction:column;

align-items:flex-start;

}

.info-grid{

display:grid;

grid-template-columns:
repeat(2,1fr);

gap:12px;

}

.info-item{

padding:14px;

border-radius:18px;

min-height:95px;

}

.info-item label{

font-size:11px;

margin-bottom:6px;

}

.info-item h4{

font-size:13px;

line-height:1.4;

word-break:break-word;

}

.notice{

padding:18px;

font-size:13px;

}

.footer-grid{
grid-template-columns:1fr;
}

}
/* FACEBOOK LINK */

.fb-link{

display:inline-flex;

align-items:center;

gap:12px;

color:#60a5fa;

text-decoration:none;

font-weight:700;

font-size:16px;

transition:0.3s;

}

.fb-link:hover{

color:white;

transform:translateY(-2px);

text-shadow:
0 0 12px rgba(96,165,250,0.8);

}

.fb-icon{

width:34px;
height:34px;

object-fit:contain;

filter:
drop-shadow(0 0 8px rgba(59,130,246,0.45));

}
/* LOGIN PAGE */

.login-page{

width:100%;
min-height:100vh;

display:flex;
align-items:center;
justify-content:center;

padding:20px;

}

.login-card{

width:100%;
max-width:400px;

padding:40px;

border-radius:30px;

background:rgba(255,255,255,0.08);

backdrop-filter:blur(15px);

border:1px solid rgba(255,255,255,0.1);

text-align:center;

}

.login-card h2{

font-size:32px;

margin-bottom:10px;

}

.login-card p{

color:#d1d5db;

margin-bottom:20px;

}

.login-card input{

width:100%;

height:60px;

border:none;
outline:none;

border-radius:18px;

padding:0 20px;

font-size:16px;

background:rgba(255,255,255,0.08);

color:white;

margin-bottom:20px;

}

.login-card button{

width:100%;

height:60px;

border:none;

border-radius:18px;

background:
linear-gradient(
135deg,
#2563eb,
#1d4ed8
);

color:white;

font-size:16px;
font-weight:700;

cursor:pointer;

}

#errorText{

margin-top:15px;

color:#f87171;

font-weight:700;

}



/* =========================
LOGIN PAGE PREMIUM
========================= */

.login-body{

min-height:100vh;

display:flex;

justify-content:center;

align-items:center;

padding:30px 20px;

}


/* LOGIN CONTAINER */

.login-container{

width:100%;

max-width:500px;

display:flex;

justify-content:center;

align-items:center;

}


.login-card{

background:
rgba(255,255,255,0.08);

border:
1px solid rgba(255,255,255,0.1);

backdrop-filter:
blur(14px);

padding:20px;

border-radius:30px;

box-shadow:
0 10px 40px rgba(0,0,0,0.35);

text-align:center;

}


.login-brand{

margin-bottom:35px;

}


.login-logo-wrapper{

display:flex;
justify-content:center;
align-items:center;
gap:18px;

margin-bottom:20px;

}


.login-logo{

width:75px;
height:75px;

object-fit:contain;

}


.login-title{

font-size:38px;
font-weight:900;

letter-spacing:1px;

margin-bottom:10px;

color:white;

}


.login-subtitle{

font-size:18px;
font-weight:700;

color:#60a5fa;

}


.login-heading{

font-size:28px;
font-weight:800;

margin-bottom:10px;

color:white;

}


.login-text{

color:#d1d5db;

margin-bottom:30px;

line-height:1.7;

}


.login-card input{

width:100%;

height:60px;

border:none;

outline:none;

border-radius:16px;

padding:0 20px;

margin-bottom:18px;

background:
rgba(255,255,255,0.08);

color:white;

font-size:15px;

border:
1px solid rgba(255,255,255,0.1);

}


.login-card input::placeholder{

color:#9ca3af;

}


#loginBtn{

width:100%;

height:60px;

border:none;

border-radius:16px;

background:
linear-gradient(
135deg,
#2563eb,
#1d4ed8
);

color:white;

font-size:16px;
font-weight:800;

cursor:pointer;

transition:0.3s;

}


#loginBtn:hover{

transform:translateY(-3px);

box-shadow:
0 10px 25px rgba(37,99,235,0.4);

}


#loginMessage{

margin-top:20px;

font-weight:700;

}


/* =========================
MOBILE
========================= */

@media(max-width:768px){

.button-group{

display:flex;

flex-direction:row;

gap:10px;

}

#clearBtn{

width:100%;

}

.login-card{

padding:30px 25px;

}

.login-logo{

width:60px;
height:60px;

}

.login-title{

font-size:28px;

}

.login-subtitle{

font-size:15px;

}

.login-heading{

font-size:23px;

}

}

/* BUTTON GROUP */

.button-group{

display:flex;

gap:15px;

margin-top:15px;

}


#searchBtn,
#clearBtn{

flex:1;

width:100%;

height:55px;

}


/* BUTTON SEMAK */

#searchBtn{

background:
linear-gradient(
135deg,
#2563eb,
#1d4ed8
);

color:white;

}


/* BUTTON PADAM */

#clearBtn{

background:
rgba(255,255,255,0.08);

border:
1px solid rgba(255,255,255,0.1);

color:white;

}


#clearBtn:hover{

background:
rgba(239,68,68,0.15);

border-color:
rgba(239,68,68,0.4);

transform:translateY(-2px);

}

/* =========================
STATUS LAYAK
========================= */

.status-box{

background:
rgba(34,197,94,0.12);

border:
1px solid rgba(34,197,94,0.35);

color:#4ade80;

box-shadow:
0 0 25px rgba(34,197,94,0.45);

}


/* =========================
STATUS TUNGGU SMS
========================= */

.status-box.pending{

background:
rgba(250,204,21,0.12) !important;

border:
1px solid rgba(250,204,21,0.45) !important;

color:
#fde047 !important;

box-shadow:
0 0 25px rgba(250,204,21,0.6) !important;

animation:
pulseYellow 2s infinite;

}


/* =========================
STATUS RAYUAN
========================= */

.status-box.not-layak{

background:
rgba(236,72,153,0.12) !important;

border:
1px solid rgba(236,72,153,0.45) !important;

color:
#f472b6 !important;

box-shadow:
0 0 25px rgba(236,72,153,0.55) !important;

animation:
pulsePink 2s infinite;

}


/* =========================
ANIMATION YELLOW
========================= */

@keyframes pulseYellow{

0%{
transform:scale(1);
box-shadow:
0 0 10px rgba(250,204,21,0.25);

}

50%{
transform:scale(1.05);
box-shadow:
0 0 35px rgba(250,204,21,0.75);

}

100%{
transform:scale(1);
box-shadow:
0 0 10px rgba(250,204,21,0.25);

}

}


/* =========================
ANIMATION PINK
========================= */

@keyframes pulsePink{

0%{
transform:scale(1);
box-shadow:
0 0 10px rgba(236,72,153,0.25);

}

50%{
transform:scale(1.05);
box-shadow:
0 0 35px rgba(236,72,153,0.75);

}

100%{
transform:scale(1);
box-shadow:
0 0 10px rgba(236,72,153,0.25);

}

}

/* BUTTON RAYUAN LINK */

.rayuan-link{

text-decoration:none;

color:inherit;

font-weight:800;

display:flex;

align-items:center;
justify-content:center;

width:100%;
height:100%;

}

/* SMS NOTICE */

.sms-notice{

grid-column:1/-1;

margin-top:8px;

padding:22px;

border-radius:20px;

background:
rgba(250,204,21,0.08);

border:
1px solid rgba(250,204,21,0.25);

color:#fde68a;

font-size:15px;

line-height:1.9;

font-weight:500;

text-align:center;

backdrop-filter:blur(8px);

}
@media(max-width:768px){

/* MOBILE RESULT CARD */

.result-card{

padding:20px 16px;

}


/* MOBILE STATUS BUTTON */

.status-box{

width:100%;

margin-top:15px;

font-size:14px;

display:flex;

align-items:center;
justify-content:center;

text-align:center;

min-width:140px;

padding:14px 22px;

line-height:1.2;

}


/* MOBILE INFO BOX */

.info-item{

display:flex;

flex-direction:column;

justify-content:center;

}


/* MOBILE SMS NOTICE */

.sms-notice{

text-align:justify;

font-size:14px;

line-height:1.8;

}

}
/* =========================
RAYUAN NOTICE
========================= */

.rayuan-notice{

width:100%;

padding:22px;

border-radius:22px;

background:
rgba(236,72,153,0.08);

border:
1px solid rgba(236,72,153,0.25);

color:#f9a8d4;

font-size:15px;

line-height:1.8;

font-weight:500;

}


/* TITLE */

.rayuan-notice strong{

display:block;

text-align:center;

margin-bottom:12px;

font-size:17px;

}


/* BODY */

.rayuan-notice-text{

text-align:justify;

text-align-last:center;

}
/* =========================
FORCE MOBILE RAYUAN FIX
========================= */

@media(max-width:768px){

.rayuan-notice{

display:block !important;

width:100% !important;

padding:20px !important;

border-radius:20px !important;

box-sizing:border-box !important;

text-align:center !important;

font-size:14px !important;

line-height:1.8 !important;

margin-top:10px !important;

}


.rayuan-notice strong{

display:block !important;

width:100% !important;

text-align:center !important;

font-size:16px !important;

margin-bottom:14px !important;

}


.rayuan-notice-text{

display:block !important;

width:100% !important;

text-align:justify !important;

text-align-last:center !important;

}

}
/* =========================
RAYUAN FULL WIDTH FIX
========================= */

.full-width{

grid-column:1 / -1;

}
/* BUTTON STATUS MOBILE */

.status-box{

width:auto !important;

display:inline-flex;

padding:12px 24px;

align-self:center;

}