
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');

:root{
  --bg:#07111f;
  --bg2:#0b1630;
  --card:#111d35cc;
  --card-solid:#111d35;
  --text:#f7f9ff;
  --muted:#aebbd6;
  --primary:#6c63ff;
  --primary2:#8b5cf6;
  --cyan:#22d3ee;
  --pink:#ff4fa3;
  --yellow:#ffd166;
  --green:#39d98a;
  --danger:#ff6b6b;
  --border:rgba(255,255,255,.10);
  --shadow:0 20px 60px rgba(0,0,0,.28);
  --radius:26px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Poppins',sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 15% 15%, rgba(108,99,255,.22), transparent 30%),
    radial-gradient(circle at 85% 12%, rgba(34,211,238,.16), transparent 28%),
    radial-gradient(circle at 70% 70%, rgba(255,79,163,.10), transparent 28%),
    linear-gradient(180deg,var(--bg),var(--bg2));
  min-height:100vh;
  line-height:1.6;
}

body::before{
  content:"";
  position:fixed; inset:0; pointer-events:none; opacity:.3;
  background-image:
    linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);
  background-size:28px 28px;
}

.wrap{max-width:1120px;margin:auto;padding:0 20px}

.ffy-spanish-app header:not(.ffy-topbar){
  padding:54px 0 38px;
  position:relative;
  overflow:hidden;
}
.ffy-spanish-app header:not(.ffy-topbar)::after{
  content:"🇪🇸";
  position:absolute;
  right:5%;
  top:10px;
  font-size:110px;
  opacity:.08;
  transform:rotate(-8deg);
}

.hero{
  background:linear-gradient(135deg,rgba(108,99,255,.23),rgba(34,211,238,.10));
  border:1px solid var(--border);
  border-radius:32px;
  padding:34px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(12px);
}

h1,h2,h3{margin-top:0;line-height:1.2}
h1{
  font-size:clamp(2.1rem,5vw,4.6rem);
  margin-bottom:10px;
  font-weight:800;
  letter-spacing:-.04em;
}
h2{font-size:clamp(1.5rem,3vw,2.4rem)}
h3{font-size:1.15rem}
p{color:var(--muted)}

.gradient-text{
  background:linear-gradient(90deg,#fff,var(--cyan),#d9c2ff);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 13px;
  border-radius:999px;
  background:rgba(255,209,102,.14);
  color:#ffe8a6;
  border:1px solid rgba(255,209,102,.25);
  font-weight:700;
  font-size:.86rem;
}

.ffy-spanish-app nav:not(.ffy-main-nav){
  margin-top:22px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.ffy-spanish-app nav:not(.ffy-main-nav) a,.ffy-spanish-app .btn,.ffy-spanish-app button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-decoration:none;
  border:none;
  cursor:pointer;
  font-family:inherit;
  font-weight:700;
  border-radius:16px;
  transition:.2s ease;
}

.ffy-spanish-app nav:not(.ffy-main-nav) a,.ffy-spanish-app .btn{
  color:#fff;
  padding:11px 16px;
  background:rgba(255,255,255,.08);
  border:1px solid var(--border);
}

.ffy-spanish-app nav:not(.ffy-main-nav) a:hover,.ffy-spanish-app .btn:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.13);
}

button{
  padding:14px 20px;
  color:white;
  background:linear-gradient(90deg,var(--primary),var(--pink));
  box-shadow:0 10px 30px rgba(108,99,255,.28);
  font-size:1rem;
}
button:hover{transform:translateY(-2px) scale(1.01)}

main{padding:10px 0 50px}

.section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:18px;
}

.card{
  position:relative;
  background:linear-gradient(180deg,rgba(17,29,53,.96),rgba(12,23,43,.96));
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:var(--shadow);
  overflow:hidden;
  transition:.22s ease;
}
.card::before{
  content:"";
  position:absolute;
  width:110px;height:110px;
  border-radius:50%;
  right:-35px;top:-35px;
  background:radial-gradient(circle,rgba(34,211,238,.18),transparent 70%);
}
.card:hover{
  transform:translateY(-6px);
  border-color:rgba(108,99,255,.40);
}

.card a{
  color:#b8b2ff;
  text-decoration:none;
  font-weight:700;
}
.card a:hover{color:#fff}

.lesson-number{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#c8d3eb;
  margin-bottom:8px;
}

.lesson-icon{
  width:52px;height:52px;
  display:grid;place-items:center;
  border-radius:17px;
  background:linear-gradient(135deg,rgba(108,99,255,.22),rgba(255,79,163,.18));
  margin-bottom:14px;
  font-size:1.5rem;
}

.exercise{
  margin:18px 0;
  padding:20px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.045);
  border-radius:20px;
}

.option{
  display:block;
  padding:12px 14px;
  margin:9px 0;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.035);
  cursor:pointer;
  transition:.18s ease;
}
.option:hover{
  background:rgba(108,99,255,.10);
  border-color:rgba(108,99,255,.25);
}
.option input{accent-color:var(--primary);margin-right:8px}

.progress{
  height:13px;
  background:rgba(255,255,255,.07);
  border:1px solid var(--border);
  border-radius:999px;
  overflow:hidden;
  margin:8px 0 24px;
}
.progress span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,var(--cyan),var(--primary),var(--pink));
  box-shadow:0 0 20px rgba(108,99,255,.45);
  transition:width .3s ease;
}

.result{
  margin-top:18px;
  padding:16px 18px;
  border-radius:16px;
  background:rgba(57,217,138,.08);
  border:1px solid rgba(57,217,138,.20);
  font-weight:700;
  color:#dff8eb;
}

.study-list p{
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius:16px;
  padding:13px 15px;
  margin:10px 0;
  color:#dbe4f5;
}

.ffy-spanish-app footer{
  text-align:center;
  color:#8795b3;
  padding:30px 0 40px;
  font-size:.9rem;
}

@media(max-width:700px){
  .wrap{padding:0 14px}
  .ffy-spanish-app header:not(.ffy-topbar){padding-top:24px}
  .hero{padding:22px}
  .grid{grid-template-columns:1fr}
  .ffy-spanish-app nav:not(.ffy-main-nav) a,.ffy-spanish-app .btn{flex:1 1 auto}
  .card{padding:18px}
}


/* ===== TEMA GIORNO / NOTTE ===== */
:root[data-theme="day"]{
  --bg:#eef5ff;
  --bg2:#dcecff;
  --card:rgba(255,255,255,.88);
  --card-solid:#ffffff;
  --text:#172033;
  --muted:#5f6f89;
  --border:rgba(44,62,100,.11);
  --shadow:0 18px 45px rgba(56,78,120,.13);
}

:root[data-theme="day"] body{
  background:
    radial-gradient(circle at 15% 15%,rgba(108,99,255,.13),transparent 28%),
    radial-gradient(circle at 85% 10%,rgba(34,211,238,.15),transparent 25%),
    radial-gradient(circle at 80% 72%,rgba(255,79,163,.09),transparent 26%),
    linear-gradient(180deg,#eef7ff,#f8fbff);
}

:root[data-theme="day"] body::before{
  background-image:
    linear-gradient(rgba(30,60,100,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,60,100,.035) 1px,transparent 1px);
}

:root[data-theme="day"] .hero{
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(238,246,255,.86));
}

:root[data-theme="day"] .card,
:root[data-theme="day"] .stat{
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,251,255,.94));
}

:root[data-theme="day"] .study-list p,
:root[data-theme="day"] .exercise,
:root[data-theme="day"] .option{
  background:rgba(255,255,255,.75);
  color:#24344f;
}

:root[data-theme="day"] .gradient-text{
  background:linear-gradient(90deg,#5c54e8,#087ea4,#d93f8c);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

:root[data-theme="day"] nav a,
:root[data-theme="day"] .btn{
  color:#253657;
  background:rgba(255,255,255,.82);
}

:root[data-theme="day"] .result{
  color:#12613e;
}

.theme-toggle{
  position:fixed;
  right:18px;
  bottom:18px;
  width:54px;
  height:54px;
  border-radius:18px;
  padding:0;
  z-index:1000;
  font-size:1.35rem;
  background:linear-gradient(135deg,var(--primary),var(--pink));
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 15px 35px rgba(0,0,0,.25);
}


/* ===== PRONUNCIA AUDIO ===== */
.study-row{
  display:flex;
  gap:12px;
  align-items:center;
  margin:10px 0;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:rgba(255,255,255,.04);
}
.study-row p{
  flex:1;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}

.sound-btn{
  flex:0 0 auto;
  width:46px;
  height:46px;
  min-width:46px;
  padding:0;
  display:grid;
  place-items:center;
  border-radius:15px;
  font-size:1.15rem;
  background:linear-gradient(135deg,rgba(34,211,238,.22),rgba(108,99,255,.30));
  border:1px solid rgba(255,255,255,.13);
  box-shadow:none;
}
.sound-btn:hover{
  transform:scale(1.07);
}
.sound-btn.small{
  width:38px;
  height:38px;
  min-width:38px;
  border-radius:12px;
  font-size:.95rem;
}
.sound-btn.speaking{
  background:linear-gradient(135deg,var(--pink),var(--primary));
  animation:soundPulse 1s infinite;
}
@keyframes soundPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(108,99,255,.38)}
  50%{box-shadow:0 0 0 9px rgba(108,99,255,0)}
}

.quiz-question-head{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.quiz-question-head h3{
  flex:1;
  margin-bottom:10px;
}

.option-row{
  display:flex;
  gap:8px;
  align-items:center;
  margin:9px 0;
}
.option-row .option{
  flex:1;
  margin:0;
}

:root[data-theme="day"] .study-row{
  background:rgba(255,255,255,.76);
}
:root[data-theme="day"] .sound-btn{
  color:#253657;
  background:linear-gradient(135deg,rgba(34,211,238,.16),rgba(108,99,255,.15));
  border-color:rgba(44,62,100,.10);
}

@media(max-width:600px){
  .study-row{align-items:flex-start}
  .sound-btn{width:42px;height:42px;min-width:42px}
}
