*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Segoe UI, Arial, sans-serif;
}

body{
background:linear-gradient(135deg,#0f172a,#1e293b,#0f172a);
color:white;
min-height:100vh;
display:flex;
flex-direction:column;
}


/* NAVBAR */

.navbar{
display:flex;
justify-content:space-between;
align-items:center;

padding:14px 40px;

background:rgba(2,6,23,.92);
backdrop-filter:blur(12px);

border-bottom:1px solid rgba(255,255,255,.08);

position:relative;
z-index:100;
}

.nav-brand{
text-decoration:none;
color:inherit;
}

.nav-brand-glass{
display:inline-flex;
align-items:center;
gap:10px;
padding:10px 14px;
border-radius:16px;
background:rgba(255,255,255,0.06);
border:1px solid rgba(255,255,255,0.12);
box-shadow:0 12px 30px rgba(0,0,0,0.25);
}

.nav-brand-icon{
width:22px;
height:22px;
border-radius:8px;
}

.nav-brand-text{
font-weight:800;
font-size:16px;
letter-spacing:0.2px;
color:#e2e8f0;
}

.nav-logo{
font-size:18px;
font-weight:700;
}

.nav-links a{
margin-left:18px;
text-decoration:none;
color:#cbd5f5;
font-size:14px;
transition:.2s;
}

.nav-links a:hover{
color:#7cff6b;
}

.nav-links .active{
color:#7cff6b;
font-weight:600;
}

@media(min-width:900px){
.navbar{
flex-direction:column;
justify-content:center;
align-items:center;
gap:12px;
}

.nav-brand{
width:100%;
display:flex;
justify-content:center;
}

.nav-links{
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:10px 18px;
padding:10px 14px;
border-radius:18px;
background:rgba(255,255,255,0.05);
border:1px solid rgba(255,255,255,0.10);
backdrop-filter:blur(12px);
}

.nav-links a{
margin-left:0;
color:#cbd5e1;
white-space:nowrap;
}
}

@media(max-width:768px){
.navbar{
flex-direction:column;
align-items:stretch;
gap:12px;
padding:14px 14px;
}

.nav-brand{
width:100%;
display:flex;
justify-content:center;
}

.nav-brand-glass{
width:100%;
justify-content:center;
}

.nav-links{
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:10px 14px;
padding:8px 10px;
border-radius:16px;
background:rgba(255,255,255,0.05);
border:1px solid rgba(255,255,255,0.10);
backdrop-filter:blur(12px);
}

.nav-links a{
margin-left:0;
font-size:13px;
color:#cbd5e1;
white-space:nowrap;
}
}


/* HERO */

.hero {
  text-align: center;
  padding: 60px 20px;
  background: radial-gradient(circle at top left, #1e3c72, #0f2027);
  color: white;
}

.hero h1{
font-size:42px;
font-weight:700;
margin-bottom:10px;
}

.hero p{
color:#94a3b8;
font-size:16px;
}


/* LAYOUT */

.container{
max-width:1200px;
margin:auto;

padding:30px 40px 80px;

display:flex;
justify-content:flex-end;
}


/* CARD */

.card{

width:500px;

background:#020617;

padding:28px;

border-radius:14px;

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

}


/* FORM */

.card label{
display:block;
margin-bottom:6px;
font-size:14px;
color:#cbd5e1;
}

.card input{

width:100%;

padding:12px;

border-radius:8px;

border:none;

background:#111827;

color:white;

margin-bottom:18px;

}


/* BUTTON */

.card button{

width:100%;

padding:12px;

border-radius:10px;

border:none;

font-weight:600;

background:linear-gradient(90deg,#d9ff3d,#7cff6b);

cursor:pointer;

transition:.25s;

}

.card button:hover{
transform:translateY(-2px);
box-shadow:0 10px 25px rgba(124,255,107,.35);
}


/* RESULT */

.result-card{

margin-top:16px;

padding:14px;

border-radius:8px;

background:#020617;

color:#cbd5e1;

font-size:14px;

}


/* FOOTER */

.footer{

margin-top:auto;

padding:30px 40px;

border-top:1px solid rgba(255, 255, 255, 0.404);

color:#c0c0c0;

font-size:14px;

text-align:center;

}

.timeline{

display:grid;

grid-template-columns:repeat(7,1fr);

gap:8px;

margin-top:20px;

}

.day{

padding:10px;

border-radius:8px;

text-align:center;

font-size:13px;

font-weight:600;

background:#1e293b;

}

.haid{

background:#ef4444;

}

.istihadhah{

background:#3b82f6;

}

.today{

outline:3px solid #facc15;

}


/* LEGEND */

.legend{

display:flex;

gap:20px;

margin-top:15px;

font-size:14px;

align-items:center;

}

.l-haid,
.l-ist,
.l-today{

width:14px;
height:14px;

display:inline-block;

border-radius:3px;

margin-right:6px;

}

.l-haid{

background:#ef4444;

}

.l-ist{

background:#3b82f6;

}

.l-today{

background:#facc15;

}

.fiqh-box{

margin-top:25px;

padding:18px;

background:#020617;

border-radius:10px;

border:1px solid rgba(255,255,255,.08);

}

.fiqh-box h3{

margin-bottom:8px;

font-size:18px;

}

.fiqh-box p{

font-size:14px;

line-height:1.6;

color:#cbd5e1;

}

.calendar{

margin-top:20px;

}

.calendar-header{

display:grid;
grid-template-columns:repeat(7,1fr);

text-align:center;

margin-bottom:10px;

color:#94a3b8;

font-size:13px;

}

.timeline{

display:grid;
grid-template-columns:repeat(7,1fr);

gap:8px;

}


select{

width:100%;

padding:12px 14px;

margin-top:6px;

margin-bottom:14px;

border-radius:10px;

border:none;

background:#1e293b;

color:#e2e8f0;

font-size:14px;

outline:none;

box-shadow:0 0 0 1px rgba(255,255,255,0.05);

transition:0.2s;

}

select:focus{

box-shadow:0 0 0 2px #38bdf8;

}

select option{

background:#0f172a;

color:#e2e8f0;

}

select:hover{

box-shadow:0 0 0 2px rgba(56,189,248,0.4);

}

.card{

animation:fadeUp 0.7s ease;

}

@keyframes fadeUp{

from{

opacity:0;
transform:translateY(25px);

}

to{

opacity:1;
transform:translateY(0);

}

}

button{

transition:all 0.25s ease;

}

button:hover{

transform:translateY(-2px);

box-shadow:0 8px 25px rgba(0,0,0,0.35);

}

.result-card{

animation:fadeResult 0.5s ease;

}

@keyframes fadeResult{

from{

opacity:0;
transform:translateY(15px);

}

to{

opacity:1;
transform:translateY(0);

}

}

.haid{

box-shadow:0 0 10px rgba(255,80,80,0.6);

}

.istihadhah{

box-shadow:0 0 10px rgba(80,160,255,0.6);

}

.suci{
background:#22c55e;
color:white;
}

.result-box{
margin-top:20px;
padding:18px 20px;

background:rgba(255,255,255,0.05);
border:1px solid rgba(255,255,255,0.08);

border-radius:14px;

box-shadow:
0 0 25px rgba(0,0,0,0.4),
inset 0 0 10px rgba(255,255,255,0.03);

line-height:1.7;
}

.result-box{
opacity:0;
transform:translateY(20px);
transition:0.5s ease;
}

.result-box.show{
opacity:1;
transform:translateY(0);
}

.result-box h3{
margin-bottom:10px;
font-size:20px;
}

.l-suci{
display:inline-block;
width:12px;
height:12px;
background:#e0e0e0;
border-radius:3px;
margin-right:6px;
}

.day.suci{
background:#2a2a2a;
color:#bbb;
border:1px solid rgba(255,255,255,0.05);
}

.day{
transition:0.25s;
}

.day:hover{
transform:translateY(-2px);
box-shadow:0 4px 12px rgba(0,0,0,0.4);
}

.day{
opacity:0;
transform:scale(0.8);
animation:dayFade 0.4s forwards;
}

@keyframes dayFade{
to{
opacity:1;
transform:scale(1);
}
}

.day.haid{
box-shadow:0 0 10px rgba(255,90,70,0.6);
}

.day.today{
box-shadow:
0 0 0 2px #ffd400,
0 0 12px rgba(255,212,0,0.8);
}

@media (max-width:768px){

.container{
width:100%;
padding:15px;
}

.card{
width:100%;
padding:20px;
border-radius:16px;
}


input,
select{
width:100%;
font-size:16px;
padding:12px;
}

button{
width:100%;
font-size:16px;
padding:14px;
}

.timeline{
grid-template-columns:repeat(7,1fr);
gap:6px;
}

.day{
height:36px;
font-size:14px;
}

}

input[type="date"]::-webkit-calendar-picker-indicator{
filter: invert(1) brightness(2);
opacity:1;
}

/* ===== BALIKIN STYLE PILIHAN BAHASA BIAR BAGUS ===== */
.fiqh-lang-switch {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
}

.fiqh-lang-switch select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.10);
  color: #fff;
  border-radius: 999px;
  padding: 6px 30px 6px 12px;
  font-size: 12px;
  line-height: 1.2;
  outline: none;
  box-shadow: none;
  cursor: pointer;
  backdrop-filter: blur(8px);
  background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%);
  background-position: calc(100% - 16px) calc(50% - 1px), calc(100% - 11px) calc(50% - 1px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

.fiqh-lang-switch select:hover,
.fiqh-lang-switch select:focus {
  border-color: rgba(255,255,255,.45);
  background-color: rgba(255,255,255,.14);
}

@media (max-width: 768px) {
  .fiqh-lang-switch {
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
  }

  .fiqh-lang-switch select {
    font-size: 12px;
    padding: 6px 28px 6px 12px;
  }
}

/* =========================
   DESKTOP HERO FULL WIDTH
========================= */

@media (min-width: 900px){

.hero{
  width:100%;
  max-width:none;
  margin:0;
  padding:80px 20px;
}

.hero-inner{
  max-width:1200px;
  margin:auto;
  text-align:center;
}

}

 .scroll-to-top{
   position: fixed;

   left: 18px;
   bottom: 26px;

   width: 42px;
   height: 36px;

   border: none;
   border-radius: 10px;

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

   cursor: pointer;

   background: linear-gradient(135deg,#ef4444,#dc2626);

   color: white;

   box-shadow:
     0 6px 16px rgba(0,0,0,0.25),
     0 3px 8px rgba(239,68,68,0.35);

   opacity: 0;
   visibility: hidden;

   transform: translateY(14px);
   transition: all 0.28s ease;

   z-index: 999;
   pointer-events: none;
 }

 .scroll-to-top svg{
   width: 16px;
   height: 16px;
 }

 .scroll-to-top.show{
   opacity: 1;
   visibility: visible;
   transform: translateY(0);
   pointer-events: auto;
 }

 .scroll-to-top:hover{
   transform: translateY(-2px);
   box-shadow:
     0 10px 22px rgba(0,0,0,0.3),
     0 6px 14px rgba(239,68,68,0.45);
 }

 .scroll-to-top:active{
   transform: scale(0.95);
 }
