:root{
  --zpc-bg:#ffffff;
  --zpc-fg:#222;
  --zpc-muted:#666;
  --zpc-brand:#6d2b76;
  --zpc-border:#e5e5e7;
  --zpc-radius:14px;
  --zpc-shadow:0 10px 28px rgba(0,0,0,.12);
}

.zpc-compat{ background:var(--zpc-bg); color:var(--zpc-fg); }
.zpc-form{ max-width:1060px; margin:0 auto 18px; padding:12px; }

/* layout */
.zpc-two{ display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:720px){ .zpc-two{ grid-template-columns:1fr 1fr; } }

.zpc-person{
  background:#faf8fb;
  border:1px solid var(--zpc-border);
  border-radius:var(--zpc-radius);
  padding:14px;
}
.zpc-person legend{
  font-weight:700; color:var(--zpc-brand); padding:0 4px; margin-left:2px;
}

.zpc-row{ margin:0 0 10px; }
.zpc-grid3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:8px 0; }

/* inputs */
.zpc-person label{ display:block; font-size:.92rem; color:var(--zpc-muted); margin-bottom:6px; }
.zpc-person input[type="text"],
.zpc-person select{
  width:100%;
  border-radius:12px;
  border:1px solid var(--zpc-border);
  background:#fff;
  padding:10px 12px;
  font-size:1rem;
  color:#222;
  outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.zpc-person input[type="text"]:focus,
.zpc-person select:focus{
  border-color:var(--zpc-brand);
  box-shadow:0 0 0 3px rgba(109,43,118,.15);
}

.zpc-unknown{ display:flex; align-items:center; gap:8px; margin-top:28px; }
.zpc-unknown input{ width:auto; }

/* city autocomplete */
.zpc-city-wrap{ margin-top:8px; }
.zpc-city-wrap input[type="text"]{ width:100%; }

/* button */
.zpc-form .button{
  display:inline-block;
  background:var(--zpc-brand);
  color:#fff;
  border:0;
  border-radius:12px;
  padding:12px 18px;
  font-weight:700;
  cursor:pointer;
}
.zpc-form .button:hover{ filter:brightness(.96); }
.zpc-form .button:focus-visible{ outline:3px solid rgba(109,43,118,.35); outline-offset:2px; }

@media (max-width:480px){
  .zpc-form .button{ width:100%; position:sticky; bottom:8px; z-index:3; }
}

/* errors */
.zpc-error{
  background:#fff2f2;
  border:1px solid #ffb9c0;
  padding:12px;
  border-radius:12px;
  margin:12px 0;
}

/* jQuery UI autocomplete */
.ui-autocomplete{
  position:absolute;
  z-index:100000;
  max-height:260px;
  overflow:auto;
  background:#fff;
  border:1px solid var(--zpc-border);
  border-radius:12px;
  padding:6px 0;
  list-style:none;
  box-shadow:var(--zpc-shadow);
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.ui-autocomplete .ui-menu-item-wrapper{ padding:10px 14px; cursor:pointer; }
.ui-autocomplete .ui-state-active{ background:#f5eff8; }

/* chart */
.zpc-chart--synastry svg{ width:100%; height:auto; display:block; }

/* force ZodiacPress fonts on every text node inside the SVG */
.zpc-chart--synastry svg text,
.zpc-chart--synastry svg .zpc-font,
.zpc-chart--synastry svg .zpc-sign,
.zpc-chart--synastry svg .zpc-plA,
.zpc-chart--synastry svg .zpc-plB,
.zpc-chart--synastry svg .zpc-lblA,
.zpc-chart--synastry svg .zpc-lblB,
.zpc-chart--synastry svg .zpc-deg,
.zpc-chart--synastry svg .zpc-hno{
  font-family:"zodiacpress","HamburgSymbols","Noto Sans Symbols 2","Noto Sans Symbols","Segoe UI Symbol","DejaVu Sans",sans-serif !important;
  font-variant-emoji:text; /* text, not emoji */
}

/* keep some color helpers */
.zpc-chart--synastry svg .zpc-sign{ fill:#6d2b76; text-anchor:middle; dominant-baseline:middle; }
.zpc-chart--synastry svg .zpc-plA{ fill:#212121; text-anchor:middle; dominant-baseline:middle; }
.zpc-chart--synastry svg .zpc-plB{ fill:#9a2e2e; text-anchor:middle; dominant-baseline:middle; }

/* RTL support */
[dir="rtl"] .zpc-two{ direction:rtl; }
[dir="rtl"] .zpc-person legend{ margin-right:2px; margin-left:0; }
[dir="rtl"] .ui-autocomplete{ text-align:right; }
/* === FONT FIX (force HamburgSymbols for planets; ZodiacPress for signs/labels) === */
.zpc-chart--synastry svg .zpc-sign{
  font-family: "zodiacpress","HamburgSymbols","Noto Sans Symbols 2","Noto Sans Symbols","Segoe UI Symbol","DejaVu Sans",sans-serif !important;
  font-variant-emoji: text !important;
}
.zpc-chart--synastry svg .zpc-plA,
.zpc-chart--synastry svg .zpc-plB{
  /* planets FIRST from HamburgSymbols to match classic ZP look */
  font-family: "HamburgSymbols","zodiacpress","Noto Sans Symbols 2","Noto Sans Symbols","Segoe UI Symbol","DejaVu Sans",sans-serif !important;
  font-variant-emoji: text !important;
}
.zpc-chart--synastry svg .zpc-lblA,
.zpc-chart--synastry svg .zpc-lblB,
.zpc-chart--synastry svg .zpc-deg,
.zpc-chart--synastry svg .zpc-hno{
  /* labels, degree numbers, house numbers */
  font-family: "zodiacpress","HamburgSymbols","Noto Sans Symbols 2","Noto Sans Symbols","Segoe UI Symbol","DejaVu Sans",sans-serif !important;
  font-variant-emoji: text !important;
}
