:root{
  --blue-50:#e0f2fe;
  --blue-100:#bae6fd;
  --blue-200:#93c5fd;
  --blue-300:#7dd3fc;
  --blue-400:#38bdf8;
  --blue-500:#0ea5e9;
  --blue-600:#0284c7;
  --blue-700:#1e40af;
  --blue-800:#1e3a8a;
  --blue-900:#0b2447;

  --bg: #061b2d;
  --glass: rgba(255,255,255,0.08);
  --border: rgba(255,255,255,0.15);
  --text: #eaf2fb;
  --muted: #a9b8cc;
  --success: #22c55e;
  --warn: #f59e0b;
}

*{ box-sizing: border-box }
html, body{ margin:0; padding:0; font-family: 'Vazirmatn', system-ui, sans-serif; background: var(--bg); color: var(--text); }

.bg-overlay{
  position: fixed; inset:0;
  background: radial-gradient(1000px 600px at 10% -10%, rgba(14,165,233,.25), transparent),
              radial-gradient(900px 500px at 110% 10%, rgba(30,58,138,.35), transparent),
              linear-gradient(120deg, #081a2e, #091f36 70%);
  pointer-events: none;
  z-index: -1;
}

.navbar{
  position: sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 24px; backdrop-filter: blur(8px);
  background: linear-gradient(to bottom, rgba(4,13,25,.75), rgba(4,13,25,.45));
  border-bottom:1px solid var(--border);
}
.brand{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:18px; }
.logo-dot{ width:14px; height:14px; border-radius:50%; background: linear-gradient(135deg, var(--blue-400), var(--blue-700)); box-shadow:0 0 18px var(--blue-500); }
.nav-actions{ display:flex; align-items:center; gap:16px; }
.nav-link{ color: var(--text); text-decoration: none; opacity:.85; }
.nav-link:hover{ opacity:1 }
.badge-demo{ background: linear-gradient(135deg, var(--blue-500), var(--blue-800)); padding:4px 10px; border-radius: 999px; font-size:12px; border:1px solid var(--border) }

.hero{
  padding: 64px 20px 40px;
}
.hero-inner{ max-width: 920px; margin: 0 auto; text-align:center; }
.hero h1{
  font-size: clamp(26px, 3.5vw, 44px);
  margin: 8px 0 12px;
  background: linear-gradient(135deg, #fff, #cfe9ff);
  -webkit-background-clip: text; background-clip:text; color: transparent;
}
.hero p{ color: var(--muted); font-size: 16px; margin-bottom: 24px; }

.btn{
  display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border);
  color:#fff; background: transparent; padding: 12px 18px; border-radius: 12px; cursor:pointer;
  transition: all .25s ease; font-weight:600;
}
.btn:hover{ transform: translateY(-1px); }
.btn-hero{ background: linear-gradient(135deg, var(--blue-500), var(--blue-800)); border-color: transparent; box-shadow:0 8px 24px rgba(14,165,233,.2); }
.btn-primary{ background: linear-gradient(135deg, var(--blue-500), var(--blue-700)); border-color: transparent; }
.btn-outline{ background: transparent; }
.btn-accent{ background: linear-gradient(135deg, #22c55e, #16a34a); border-color: transparent; position: relative; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; }
.btn-loader{
  width: 16px; height:16px; border:2px solid rgba(255,255,255,.5); border-top-color:#fff; border-radius:50%;
  display:inline-block; margin-left:8px; animation: spin .9s linear infinite;
}
@keyframes spin{ to{ transform: rotate(360deg) } }

.card.glass{
  max-width: 980px; margin: 0 auto; padding: 22px; border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.035));
  border:1px solid var(--border); box-shadow: 0 20px 80px rgba(0,0,0,.25);
}

.quiz-header{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap: wrap; }
.quiz-header .title{ display:flex; align-items:center; gap:10px; }
.quiz-header .title h2{ margin:0 }
.progress{ position:relative; flex:1; min-width: 260px; height:10px; background: rgba(255,255,255,.08); border-radius:999px; overflow:hidden; border:1px solid var(--border); }
.progress-bar{ height:100%; width:0%; background: linear-gradient(90deg, var(--blue-400), var(--blue-700)); transition: width .35s ease; }
.progress-text{ position:absolute; top:-28px; right:0; font-size:12px; color: var(--muted); }

.question-container{ margin-top: 18px; min-height: 260px; }
.question{ animation: fadeUp .35s ease both; }
@keyframes fadeUp{ from{ opacity:0; transform: translateY(8px) } to{ opacity:1; transform: translateY(0) } }
.question h3{ margin:0 0 8px 0 }
.question .hint{ color: var(--muted); margin-bottom: 16px; }

.options{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; }
@media (max-width: 640px){ .options{ grid-template-columns: 1fr; } }

.option-card{
  border:1px solid var(--border); border-radius:16px; padding:14px;
  background: rgba(255,255,255,.04); cursor:pointer; transition: all .2s ease;
  display:flex; gap:12px; align-items:flex-start; position:relative; overflow:hidden;
}
.option-card:hover{ transform: translateY(-2px); background: rgba(255,255,255,.06); }
.option-card.active{ background: linear-gradient(180deg, rgba(14,165,233,.2), rgba(30,58,138,.2)); border-color: rgba(14,165,233,.5); box-shadow: inset 0 0 0 1px rgba(14,165,233,.35) }
.option-icon{
  width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, var(--blue-500), var(--blue-800)); flex: 0 0 42px;
}
.option-text{ flex:1 }
.option-text .label{ font-weight:700; margin-bottom:4px }
.option-text .sub{ font-size: 12px; color: var(--muted) }

.quiz-actions{ display:flex; align-items:center; gap:10px; margin-top: 16px; }
.quiz-actions .spacer{ flex:1 }

.results-section{ max-width: 1200px; margin: 40px auto; padding: 0 16px; }
.results-header{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap: wrap; margin-bottom: 12px; }
.chosen-filters{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ background: rgba(255,255,255,.06); border:1px solid var(--border); color:#d9e6ff; border-radius:999px; padding:6px 10px; font-size:12px }

.results-grid{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
@media (max-width: 1024px){ .results-grid{ grid-template-columns: repeat(2, minmax(0,1fr)) } }
@media (max-width: 640px){ .results-grid{ grid-template-columns: 1fr } }

.result-card{
  border:1px solid var(--border); border-radius:18px; padding: 14px; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  transition: transform .22s ease, box-shadow .22s ease;
  animation: fadeUp .35s ease both;
}
.result-card:hover{ transform: translateY(-3px); box-shadow: 0 16px 48px rgba(14,165,233,.12) }

.card-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.bank{ display:flex; align-items:center; gap:10px; }
.bank img{ width:36px; height:36px; border-radius:10px; border:1px solid var(--border); background:#0b1b2c; object-fit: cover; }
.badges{ display:flex; gap:6px; flex-wrap:wrap; }
.badge{ font-size:11px; padding:4px 8px; border-radius:999px; border:1px solid var(--border); background: rgba(14,165,233,.15) }

.kv{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:8px; margin: 10px 0; }
.kv .item{
  background: rgba(255,255,255,.04); border:1px solid var(--border); border-radius:12px; padding:8px 10px; font-size:13px;
}
.kv .label{ color: var(--muted); font-size:12px }

.card-body{ color:#d8e6ff; font-size: 13px; }
.card-footer{ display:flex; align-items:center; justify-content: space-between; margin-top: 10px; }
.apply{ text-decoration:none; color:#fff; background: linear-gradient(135deg, var(--blue-500), var(--blue-800)); padding: 10px 12px; border-radius:12px; border:1px solid var(--border) }
.meta{ color: var(--muted); font-size:12px }

.skeleton{
  background: linear-gradient(90deg, rgba(255,255,255,.06), rgba(255,255,255,.12), rgba(255,255,255,.06));
  background-size: 200% 100%; animation: shimmer 1.2s infinite;
}
@keyframes shimmer{
  0%{ background-position: 200% 0 }
  100%{ background-position: -200% 0 }
}

.empty-state{ text-align:center; color: var(--muted); }
.empty-state img{ width: 88px; opacity:.6; margin: 8px 0 6px }
.footer{ text-align:center; color: var(--muted); padding: 30px 12px; border-top:1px solid var(--border); }