/* ═══════════════════════════════════════════════════
   COMPATIBILITÉ — 144 combinaisons astrologiques
   V2 Xtract design system — glass cards, layered shadows
   ═══════════════════════════════════════════════════ */

/* ── APP ── */
.app{
  display: none;
  flex: 1;
  flex-direction: column;
  padding: 100px 40px 80px;
}

.wrap{
  max-width: 640px;
  margin: 0 auto;
  width: 100%;
}

.app-header{
  margin-bottom: 40px;
}

.app-header h4{
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-light);
  margin-bottom: 12px;
}

.app-header h1{
  font-family: var(--font-heading);
  font-size: clamp(32px, 4.5vw, 44px);
  line-height: 1.08;
  letter-spacing: -0.04em;
  color: #fff;
  font-weight: 400;
}

/* ── FORM ── */
.person-label{
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent-light);
  margin-bottom: 16px;
}

.field{
  margin-bottom: 20px;
  text-align: left;
}

.field label{
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.35);
  margin-bottom: 8px;
}

.field input,
.field select{
  width: 100%;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 4px;
  color: #fff;
  font-family: var(--font-body);
  font-size: 16px;
  padding: 12px 16px;
  line-height: 1.5;
  -webkit-appearance: none;
  transition: all 0.2s var(--ease);
}

.field input:focus,
.field select:focus{
  border-color: var(--accent);
  background: rgba(129,74,200,0.04);
  outline: none;
  box-shadow: 0 0 0 3px rgba(129,74,200,0.1);
}

.field select{ color: rgba(255,255,255,0.7); }
.field select option{ background: #1a1a2e; color: #fff; }

.field-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.divider-et{
  text-align: center;
  padding: 28px 0;
  font-family: var(--font-heading);
  font-size: 24px;
  color: rgba(255,255,255,0.2);
  font-style: italic;
  letter-spacing: -0.04em;
}

.sign-display{
  font-size: 15px;
  color: rgba(255,255,255,0.7);
  margin-top: -8px;
  margin-bottom: 16px;
  letter-spacing: -0.02em;
  padding: 8px 0;
}

.gate-btn{
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.02em;
  padding: 14px 0;
  width: 100%;
  text-align: center;
  cursor: pointer;
  border-radius: 4px;
  background: var(--accent);
  color: #fff;
  border: none;
  display: inline-block;
  margin-top: 12px;
  transition: all 0.3s var(--ease);
}

.gate-btn:hover{
  background: var(--accent-light);
  transform: translateY(-1px);
  box-shadow: 0 8px 30px rgba(129,74,200,0.25);
}

/* ── RESULTS ── */
.result{
  display: none;
  margin-top: 48px;
  padding-top: 48px;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.result.show{ display: block; }

.result-header{
  text-align: center;
  margin-bottom: 40px;
}

.result-pair{
  font-family: var(--font-heading);
  font-size: clamp(28px, 4vw, 38px);
  color: #fff;
  letter-spacing: -0.04em;
  margin-bottom: 4px;
  font-weight: 400;
}

.result-pair em{
  font-style: normal;
  color: var(--accent-light);
  padding: 0 8px;
}

.result-aspect{
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.4);
  margin-top: 12px;
}

/* Score total */
.score-total{
  text-align: center;
  padding: 40px;
  margin-bottom: 32px;
  background: rgba(13,13,13,0.8);
  border: 1px solid #222;
  border-radius: 8px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    0 0 0 0.5px rgba(255,255,255,0.04),
    0 2px 8px rgba(0,0,0,0.3),
    0 0 60px rgba(129,74,200,0.04);
}

.score-total-n{
  font-family: var(--font-heading);
  font-size: clamp(56px, 8vw, 80px);
  color: #fff;
  letter-spacing: -0.04em;
  line-height: 1;
  font-weight: 400;
}

.score-total-l{
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.35);
  margin-top: 8px;
}

/* Score rows */
.score-section{
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 32px;
}

.score-row{
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background: rgba(13,13,13,0.6);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 6px;
}

.score-label{
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255,255,255,0.5);
  width: 90px;
  flex-shrink: 0;
}

.score-bar{
  flex: 1;
  height: 4px;
  background: rgba(255,255,255,0.06);
  border-radius: 2px;
  overflow: hidden;
}

.score-fill{
  height: 100%;
  width: 0;
  border-radius: 2px;
  transition: width 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  background: var(--accent);
}

.score-val{
  font-family: var(--font-mono);
  font-size: 13px;
  color: #fff;
  width: 40px;
  text-align: right;
  flex-shrink: 0;
}

/* Analysis cards */
.analysis-card{
  background: rgba(13,13,13,0.8);
  border: 1px solid #222;
  border-radius: 8px;
  padding: 28px;
  margin-bottom: 16px;
  transition: all 0.3s var(--ease);
}

.analysis-card:hover{
  border-color: #333;
  box-shadow: 0 0 40px rgba(129,74,200,0.04);
}

.analysis-title{
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent-light);
  margin-bottom: 16px;
}

.analysis-text{
  font-size: 15px;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
  letter-spacing: -0.02em;
}

.analysis-verdict{
  font-size: 15px;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
  letter-spacing: -0.02em;
}

.analysis-verdict strong{
  display: block;
  font-family: var(--font-heading);
  font-size: 20px;
  letter-spacing: -0.04em;
  color: #fff;
  margin-bottom: 12px;
  font-weight: 400;
}

/* Share */
.share-row{
  text-align: center;
  padding: 32px 0;
}

.share-btn{
  padding: 14px 36px;
  background: var(--accent);
  color: #fff;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.02em;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s var(--ease);
}

.share-btn:hover{
  background: var(--accent-light);
  transform: translateY(-1px);
  box-shadow: 0 8px 30px rgba(129,74,200,0.25);
}

/* ── RESPONSIVE ── */
@media(max-width: 768px){
  .app{ padding: 80px 24px 60px; }
  .score-total{ padding: 32px 24px; }
  .analysis-card{ padding: 24px 20px; }
}

@media(max-width: 480px){
  .app{ padding: 72px 16px 48px; }
  .field-row{ grid-template-columns: 1fr; gap: 0; }
  .score-label{ width: 70px; font-size: 10px; }
  .score-row{ padding: 12px 16px; }
  .analysis-card{ padding: 20px 16px; }
}
