
/* rc.15 theme surfaces: every plugin-owned frontend region inherits the selected light/dark palette. */
.zpf-legacy-chart,.zpf-service-birth-chart,.zpf-service-compatibility{color-scheme:var(--zpu-color-scheme,light);background-color:var(--zpu-page-bg,transparent);color:var(--zpu-text,#222)}
#zp-birthreport-form .zp-input-text::placeholder,.zpc-compat-form input::placeholder{color:var(--zpu-field-placeholder,var(--zpu-muted,#666))!important;opacity:1!important}
#zp-report-wrap :where(table,tbody,tr,td,th),.zpc-result-page :where(table,tbody,tr,td,th){color:inherit;border-color:var(--zpu-border,#e5e5e7)}
#zp-report-wrap .zp-report-header,.zpc-result-page .zpc-report-header{background:var(--zpu-surface,#fff)!important;color:var(--zpu-text,#222)!important}
/* Theme only the browser clone of Compatibility charts. The original SVG stays visually underneath and retains original computed colors for PDF/email extraction. */
.zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#fff"],.zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#FFFFFF"],.zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#ffffff"]{fill:var(--zpu-surface,#fff)!important}
.zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#E6E8ED"],.zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#e6e8ed"]{fill:var(--zpu-panel,#faf8fb)!important}
.zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#CFD9E5"],.zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#cfd9e5"]{fill:color-mix(in srgb,var(--zpu-panel,#faf8fb) 78%,var(--zpu-accent,#6d2b76))!important}
.zpf-service-compatibility svg.zpc-chart--synastry :where(circle,line,path)[stroke="#363636ff"],.zpf-service-compatibility svg.zpc-chart--synastry :where(circle,line,path)[stroke="#363636"],.zpf-service-compatibility svg.zpc-chart--synastry :where(circle,line,path)[stroke="#363636FF"]{stroke:var(--zpu-border,#e5e5e7)!important}
.zpf-service-compatibility svg.zpc-chart--synastry text[fill="#363636ff"],.zpf-service-compatibility svg.zpc-chart--synastry text[fill="#363636"]{fill:var(--zpu-text,#222)!important}
.zpf-service-compatibility svg.zpc-chart--synastry .halo{stroke:var(--zpu-surface,#fff)!important}
/*
 * Shared frontend language for Natal, Compatibility and Forecasts.
 * The legacy calculators keep their original submission/calculation logic;
 * this file normalizes presentation only.
 */
:where(#zp-form-wrap,#zp-report-wrap,.zpc-compat,.zpc-compat-form,.zpf-app){
  --zpu-focus:0 0 0 3px color-mix(in srgb,var(--zpu-accent,#6d2b76) 14%,transparent);
  font-family:var(--zpu-font,Arial,sans-serif)!important;
  color:var(--zpu-text,#222)
}
/* Older ZodiacPress styles set serif fonts on descendants. Keep all three tools on one font system. */
:where(#zp-form-wrap,#zp-report-wrap,.zpc-compat,.zpc-compat-form,.zpf-app)
:where(input,select,textarea,button,label,legend,p,span,strong,b,h1,h2,h3,h4,h5,h6,a,li){
  font-family:var(--zpu-font,Arial,sans-serif)!important
}

/* Original Natal entry form */
#zp-form-wrap{width:100%;max-width:900px;margin:24px auto;color:var(--zpu-text);font-size:var(--zpu-body-size,16px);line-height:1.5}
#zp-form-wrap h2{width:100%;max-width:900px;margin:0 auto 14px;font-size:var(--zpu-title-size,32px);font-weight:700;letter-spacing:-.02em;color:var(--zpu-text)}
#zp-form-wrap .zp-form{width:100%;max-width:900px;margin:0 auto;padding:20px;background:var(--zpu-card-bg,var(--zpu-surface,#fff));border:1px solid var(--zpu-card-border,var(--zpu-border));border-radius:var(--zpu-card-radius,16px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 18px;box-sizing:border-box;color:var(--zpu-card-text,var(--zpu-text))}
#zp-birthreport-form .zp-name-field,#zp-submit-wrap,#zp-form-tip,#zp-birthreport-form>.zp-birth-time-note{grid-column:1/-1;margin:0}
#zp-birthplace,#zp-offset-wrap{grid-column:auto;margin:0!important;min-width:0}
#zp-birthreport-form fieldset{margin:0!important;padding:14px!important;border:1px solid var(--zpu-field-border,var(--zpu-border))!important;border-radius:14px!important;background:var(--zpu-panel)!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;float:none!important;overflow:visible!important}
#zp-birthreport-form .zp-birthdate{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;align-content:start}
#zp-birthreport-form .zp-birthtime{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;align-content:start}
#zp-birthreport-form .zp-birthdate>select,#zp-birthreport-form .zp-birthtime>select{float:none!important;display:block!important;position:static!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important;box-sizing:border-box!important}
#zp-birthreport-form fieldset legend{float:none!important;position:static!important;grid-column:1/-1;margin:0 0 8px!important;padding:0!important;font-size:14px!important;line-height:1.35!important;font-weight:700!important;color:var(--zpu-accent)!important;width:auto!important;max-width:100%!important}
#zp-birthreport-form .zp-name-field,#zp-birthplace{padding:0!important}
#zp-birthreport-form .zp-name-field label,#zp-birthplace label{float:none!important;display:block!important;min-width:0!important;margin:0 0 6px!important;font-size:13px!important;line-height:1.35!important;font-weight:600!important;color:var(--zpu-muted,#666)!important}
#zp-birthreport-form .zp-input-text-wrap{display:block!important;overflow:visible!important;padding:0!important;min-width:0!important}
#zp-birthreport-form .zp-input-text,#zp-birthreport-form select,#zp-offset-wrap #zp_offset_geo{width:100%!important;max-width:100%!important;min-width:0!important;height:46px!important;padding:0 12px!important;border:1px solid var(--zpu-field-border,var(--zpu-border))!important;border-radius:11px!important;background:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;color:var(--zpu-field-text,var(--zpu-text))!important;box-shadow:none!important;box-sizing:border-box!important;font-size:15px!important;font-weight:400!important;line-height:1.25!important;float:none!important}
#zp-birthreport-form .zp-input-text:focus,#zp-birthreport-form select:focus,#zp-offset-wrap #zp_offset_geo:focus{border-color:var(--zpu-accent)!important;box-shadow:var(--zpu-focus)!important;outline:0!important}
#zp-birthreport-form .zp-form #hour,#zp-birthreport-form .zp-form #month,#zp-birthreport-form .zp-form #day,#zp-birthreport-form .zp-form #year,#zp-birthreport-form .zp-form #minute{margin:0!important}
#zp-birthreport-form .zp-unknown-time-field{grid-column:1/-1;margin:5px 0 0!important;text-align:start;font-size:13px;color:var(--zpu-muted)}
/* Birth city and calculated UTC offset share one row. */
#zp-offset-wrap{display:block!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--zpu-muted)!important;align-self:end}
#zp-offset-label{float:none!important;display:block!important;width:auto!important;margin:0 0 6px!important;font-size:13px!important;line-height:1.35!important;font-weight:600!important;color:var(--zpu-muted,#666)!important}
#zp-submit-wrap{margin-top:2px!important}
#zp-fetch-birthreport,form .zp-button{width:auto!important;min-height:44px!important;margin:0!important;padding:11px 24px!important;border:1px solid var(--zpu-button-border,var(--zpu-accent))!important;border-radius:var(--zpu-button-radius,10px)!important;background:var(--zpu-button-bg,var(--zpu-accent))!important;color:var(--zpu-button-text,#fff)!important;font-size:15px!important;font-weight:700!important;line-height:1.3!important;letter-spacing:normal!important;text-transform:none!important;cursor:pointer}
#zp-fetch-birthreport:hover,form .zp-button:hover{background:var(--zpu-button-hover-bg,var(--zpu-accent-hover))!important;border-color:var(--zpu-button-hover-border,var(--zpu-button-hover-bg,var(--zpu-accent-hover)))!important;color:var(--zpu-button-hover-text,#fff)!important}
#zp-form-tip,#zp-birthreport-form>.zp-birth-time-note{font-size:12px;color:var(--zpu-muted);line-height:1.5}

/* Current Compatibility form and legacy compatibility form */
.zpc-compat,.zpc-compat-form{max-width:1060px;margin:24px auto;color:var(--zpu-text)}
.zpc-compat .zpc-form{max-width:900px!important;margin:0 auto 18px!important;padding:20px!important;background:var(--zpu-card-bg,var(--zpu-surface,#fff));border:1px solid var(--zpu-card-border,var(--zpu-border));border-radius:var(--zpu-card-radius,16px);color:var(--zpu-card-text,var(--zpu-text))}
.zpc-compat .zpc-two{gap:18px!important}
.zpc-compat .zpc-person-label{font-size:17px!important;margin-bottom:8px!important}
.zpc-compat .calculate-button{height:auto!important;padding-top:16px!important}
.zpc-compat .zpc-form .button{min-height:44px!important;border-radius:10px!important;padding:11px 24px!important;font-size:15px!important}
.zpc-compat .zpc-person :where(input,select){font-family:var(--zpu-font,Arial,sans-serif)!important;line-height:1.25!important;box-sizing:border-box!important}
.zpc-compat-form>form{max-width:900px;margin:0 auto;padding:20px;background:var(--zpu-card-bg,var(--zpu-surface,#fff));border:1px solid var(--zpu-card-border,var(--zpu-border));border-radius:var(--zpu-card-radius,16px);color:var(--zpu-card-text,var(--zpu-text))}
.zpc-compat-form .zpc-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.zpc-compat-form fieldset{min-width:0;margin:0;padding:16px;border:1px solid var(--zpu-border);border-radius:14px;background:var(--zpu-panel)}
.zpc-compat-form legend{padding:0;margin:0 0 10px;font-size:17px;font-weight:700;color:var(--zpu-accent)}
.zpc-compat-form label{display:block;margin:0 0 10px;font-size:13px;font-weight:600;color:var(--zpu-muted,#666)}
.zpc-compat-form .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.zpc-compat-form input,.zpc-compat-form select{width:100%;max-width:100%;height:44px;padding:8px 11px;border:1px solid var(--zpu-field-border,var(--zpu-border));border-radius:11px;background:var(--zpu-field-bg,var(--zpu-surface,#fff));color:var(--zpu-field-text,var(--zpu-text));box-shadow:none;box-sizing:border-box;font-size:15px;line-height:1.4}
.zpc-compat-form input:focus,.zpc-compat-form select:focus{border-color:var(--zpu-accent);box-shadow:var(--zpu-focus);outline:0}
.zpc-compat-form button.button{min-height:44px;padding:11px 24px;border:1px solid var(--zpu-button-border,var(--zpu-accent));border-radius:var(--zpu-button-radius,10px);background:var(--zpu-button-bg,var(--zpu-accent));color:var(--zpu-button-text,#fff);font-size:15px;font-weight:700;line-height:1.3;cursor:pointer}
.zpc-compat-form button.button:hover{background:var(--zpu-button-hover-bg,var(--zpu-accent-hover));border-color:var(--zpu-button-hover-border,var(--zpu-button-hover-bg,var(--zpu-accent-hover)));color:var(--zpu-button-hover-text,#fff)}

/* Saved-person selector injected into the ORIGINAL name control. */
.zpf-person-combo{position:relative!important;display:block!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important}
.zpf-person-combo>.zpf-inline-person-select,.zpf-person-combo>.zpf-inline-new-name{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:48px!important;margin:0!important;border:1px solid var(--zpu-border,#e5e5e7)!important;border-radius:11px!important;background-color:var(--zpu-surface,#fff)!important;color:var(--zpu-text,#222)!important;box-shadow:none!important;box-sizing:border-box!important;font-family:var(--zpu-font,Arial,sans-serif)!important;font-size:16px!important;font-weight:500!important;line-height:1.25!important;text-align:start!important;vertical-align:middle!important}
.zpf-person-combo>.zpf-inline-person-select{appearance:none!important;-webkit-appearance:none!important;padding:0 42px 0 14px!important;background-repeat:no-repeat!important;background-size:12px 8px!important;background-position:right 14px center!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.25 6 6.25 11 1.25' fill='none' stroke='%23555' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}
.zpf-person-combo>.zpf-inline-new-name{padding:0 42px 0 14px!important}
.zpf-person-combo>.zpf-inline-person-select:focus,.zpf-person-combo>.zpf-inline-new-name:focus{border-color:var(--zpu-accent,#6d2b76)!important;box-shadow:var(--zpu-focus)!important;outline:0!important}
.zpf-person-combo-toggle{position:absolute!important;z-index:3!important;right:6px!important;top:50%!important;transform:translateY(-50%)!important;width:36px!important;height:36px!important;min-height:36px!important;margin:0!important;padding:0!important;border:0!important;border-radius:8px!important;background:transparent!important;color:var(--zpu-muted,#666)!important;box-shadow:none!important;cursor:pointer!important}
.zpf-person-combo-toggle span{position:absolute;left:50%;top:50%;width:8px;height:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translate(-50%,-65%) rotate(45deg)}
.zpf-person-combo>[hidden]{display:none!important}
/* Hebrew: text on the right, chevron on the left. English: reverse. */
.zpf-legacy-chart[data-zpf-legacy-lang="he"] .zpf-person-combo>.zpf-inline-person-select,
.zpf-legacy-chart[data-zpf-legacy-lang="he"] .zpf-person-combo>.zpf-inline-new-name,
html[dir="rtl"] .zpf-person-combo>.zpf-inline-person-select,
html[dir="rtl"] .zpf-person-combo>.zpf-inline-new-name{direction:rtl!important;text-align:right!important;padding-right:14px!important;padding-left:42px!important}
.zpf-legacy-chart[data-zpf-legacy-lang="he"] .zpf-person-combo>.zpf-inline-person-select,
html[dir="rtl"] .zpf-person-combo>.zpf-inline-person-select{background-position:left 14px center!important}
.zpf-legacy-chart[data-zpf-legacy-lang="he"] .zpf-person-combo-toggle,
html[dir="rtl"] .zpf-person-combo-toggle{right:auto!important;left:6px!important}
.zpf-legacy-chart[data-zpf-legacy-lang="en"] .zpf-person-combo>.zpf-inline-person-select,
.zpf-legacy-chart[data-zpf-legacy-lang="en"] .zpf-person-combo>.zpf-inline-new-name{direction:ltr!important;text-align:left!important}

/* Unified result surfaces */
#zp-report-wrap,.zpc-compat.zpc-result-page{max-width:1060px;margin:24px auto;font-family:var(--zpu-font,Arial,sans-serif)!important;color:var(--zpu-text,#222)}
#zp-report-wrap :where(.zp-report-section,.zp-report-block,article),.zpc-result-page :where(.zpc-card,.zpc-section,.zpc-cat-card){border-color:var(--zpu-card-border,var(--zpu-border,#e5e5e7))!important;border-radius:var(--zpu-card-radius,var(--zpu-radius,14px))!important;background:var(--zpu-card-bg,var(--zpu-surface,#fff))!important;color:var(--zpu-card-text,var(--zpu-text,#222))!important}
.zpc-result-page :where(h1,h2,h3,h4,a),#zp-report-wrap :where(h1,h2,h3,h4,a){color:var(--zpu-accent,#6d2b76)}

@media(max-width:720px){
  #zp-form-wrap .zp-form,.zpc-compat-form .zpc-grid{grid-template-columns:1fr}
  #zp-birthreport-form .zp-name-field,#zp-birthplace,#zp-offset-wrap,#zp-submit-wrap,#zp-form-tip,#zp-birthreport-form>.zp-birth-time-note{grid-column:1/-1}
  .zpc-compat .zpc-form,.zpc-compat-form>form,#zp-form-wrap .zp-form{padding:14px;border-radius:14px}
}
@media(max-width:480px){
  #zp-birthreport-form .zp-birthdate{grid-template-columns:1fr 1fr!important}
  #zp-birthreport-form .zp-birthdate>select:last-of-type{grid-column:1/-1}
  #zp-birthreport-form .zp-birthtime{grid-template-columns:1fr 1fr!important}
  #zp-offset-wrap{display:block!important}
  .zpc-compat-form .row{grid-template-columns:1fr}
  .zpc-compat-form button.button,#zp-fetch-birthreport{width:100%!important}
}

/* Preserve original ZodiacPress and Compatibility astrology fonts. Forecast styling may change color, never the glyph system. */
.zpf-service-birth-chart :where([class^="zp-icon-"],[class*=" zp-icon-"]){font-family:zodiacpress!important;color:var(--zpu-symbol-color,var(--zpu-legacy-symbol-color))!important}
.zpf-service-birth-chart :where([class^="zp-icon-"],[class*=" zp-icon-"])::before{color:var(--zpu-symbol-color,var(--zpu-legacy-symbol-color))!important}
.zpf-service-birth-chart #zp-report-content :where(.zp-zodiacal-dms,.zp-subheading,b,strong){color:var(--zpu-symbol-text,var(--zpu-legacy-symbol-text,var(--zpu-text,#222)))}
.zpf-service-compatibility .zpc-sym{font-family:'zodiacpress','HamburgSymbols','Noto Sans Symbols 2','Noto Sans Symbols','Segoe UI Symbol',sans-serif!important;color:var(--zpu-symbol-color,var(--zpu-legacy-symbol-color))!important;font-variant-emoji:text!important}
.zpf-service-compatibility :where(.zpc-title-text,.zpc-name,.zpc-title-planet,.zpc-title-sign,.zpc-title-house,.zpc-title-aspect){color:var(--zpu-symbol-text,var(--zpu-legacy-symbol-text,var(--zpu-text,#222)))!important}

.zpf-service-birth-chart .zpf-legacy-report-sym{display:inline-block;margin-inline-end:.28em;font-family:"zpf-hamburg","HamburgSymbols"!important;font-size:1.08em;font-weight:400!important;line-height:1;color:var(--zpu-symbol-color,var(--zpu-legacy-symbol-color,#fa4db5))!important;vertical-align:-.04em}
/* Do not override the symbol font inside the original chart SVG itself. Its A/B visual distinction remains owned by Compatibility. */

/* rc.16 frontend theme completion. These rules affect browser/frontend only. */
/* Birth Chart: theme the report caption and remove the white square around the legacy circular PNG. */
.zpf-service-birth-chart .zp-report-caption,
.zpf-service-birth-chart #zp-report-wrap .zp-report-caption{
  color:var(--zpu-title-color,var(--zpu-accent,#6d2b76))!important;
}
.zpf-service-birth-chart .zp-chart-drawing{
  clip-path:circle(50% at 50% 50%);
  -webkit-clip-path:circle(50% at 50% 50%);
  background:transparent!important;
}

/* Compatibility form: old plugin markup contains inline !important values. rc.16 JS removes those only from form controls/labels. */
.zpf-service-compatibility,.zpf-service-compatibility .zpc-compat,.zpf-service-compatibility .zpc-compat-form{
  color-scheme:var(--zpu-color-scheme,light)!important;
  color:var(--zpu-text,#222)!important;
}
.zpf-service-compatibility .zpc-form,
.zpf-service-compatibility .zpc-person-wrap,
.zpf-service-compatibility .zpc-person{
  color:var(--zpu-card-text,var(--zpu-text,#222))!important;
}
.zpf-service-compatibility .zpc-person{
  background:var(--zpu-panel,var(--zpu-card-bg,var(--zpu-surface,#fff)))!important;
  border-color:var(--zpu-card-border,var(--zpu-border,#e5e5e7))!important;
}
.zpf-service-compatibility .zpc-person-label,
.zpf-service-compatibility .zpc-person label{
  color:var(--zpu-muted,#666)!important;
}
.zpf-service-compatibility .zpc-person-wrap:nth-of-type(1)>.zpc-person-label,
.zpf-service-compatibility .zpc-two>.zpc-person-wrap:first-child>.zpc-person-label{
  color:var(--zpu-side-a,#405592)!important;
}
.zpf-service-compatibility .zpc-person-wrap:nth-of-type(2)>.zpc-person-label,
.zpf-service-compatibility .zpc-two>.zpc-person-wrap:last-child>.zpc-person-label{
  color:var(--zpu-side-b,#E236A5)!important;
}
.zpf-service-compatibility .zpc-person :where(input,select),
.zpf-service-compatibility .zpc-compat-form :where(input,select){
  background:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;
  color:var(--zpu-field-text,var(--zpu-text,#222))!important;
  border-color:var(--zpu-field-border,var(--zpu-border,#d9dfe3))!important;
}
.zpf-service-compatibility .zpc-person :where(input,select):focus,
.zpf-service-compatibility .zpc-compat-form :where(input,select):focus{
  border-color:var(--zpu-accent,#6d2b76)!important;
}
.zpf-service-compatibility .zpc-form .button,
.zpf-service-compatibility .zpc-compat-form button.button,
.zpf-service-compatibility .zpc-action-btn:not(.zpc-pdf-page *){
  background:var(--zpu-button-bg,var(--zpu-accent,#6d2b76))!important;
  color:var(--zpu-button-text,#fff)!important;
  border-color:var(--zpu-button-border,var(--zpu-accent,#6d2b76))!important;
  border-radius:var(--zpu-button-radius,10px)!important;
}
.zpf-service-compatibility .zpc-form .button:hover,
.zpf-service-compatibility .zpc-compat-form button.button:hover,
.zpf-service-compatibility .zpc-action-btn:not(.zpc-pdf-page *):hover{
  background:var(--zpu-button-hover-bg,var(--zpu-accent-hover,#5b2364))!important;
  color:var(--zpu-button-hover-text,#fff)!important;
  border-color:var(--zpu-button-hover-border,var(--zpu-button-hover-bg,var(--zpu-accent-hover,#5b2364)))!important;
}

/* Compatibility A/B colors across the browser clone and details. Glyph FONT ownership stays with Compatibility. */
.zpf-service-compatibility svg.zpc-chart--synastry :where(.zpc-plA,.zpc-lblA){fill:var(--zpu-side-a,#405592)!important;color:var(--zpu-side-a,#405592)!important}
.zpf-service-compatibility svg.zpc-chart--synastry :where(.zpc-plB,.zpc-lblB){fill:var(--zpu-side-b,#E236A5)!important;color:var(--zpu-side-b,#E236A5)!important}
.zpf-service-compatibility .zpc-details-grid{--zpc-a:var(--zpu-side-a,#405592)!important;--zpc-b:var(--zpu-side-b,#E236A5)!important}
.zpf-service-compatibility :where(.zpc-side-a,.zpc-side-a .zpc-details-card__name,.zpc-side-a .zpc-details-line__label){--zpc-side-color:var(--zpu-side-a,#405592)}
.zpf-service-compatibility :where(.zpc-side-b,.zpc-side-b .zpc-details-card__name,.zpc-side-b .zpc-details-line__label){--zpc-side-color:var(--zpu-side-b,#E236A5)}
.zpf-service-compatibility .zpc-side-a .zpc-details-card__name{color:var(--zpu-side-a,#405592)!important}
.zpf-service-compatibility .zpc-side-b .zpc-details-card__name{color:var(--zpu-side-b,#E236A5)!important}

/* Compatibility full report browser palette. PDF/email export owns a separate document stylesheet and is intentionally excluded. */
.zpf-service-compatibility .zpc-fullreport:not(.zpc-pdf-page *){
  color:var(--zpu-text,#222)!important;
}
.zpf-service-compatibility .zpc-fullreport :where(p,li,.zpc-cat-summary,.zpc-aspect-text){color:var(--zpu-card-text,var(--zpu-text,#222))!important}
.zpf-service-compatibility .zpc-fullreport h3,
.zpf-service-compatibility .zpc-fullreport .zpc-cat-title,
.zpf-service-compatibility .zpc-fullreport .zpc-cat-head{
  color:var(--zpu-compat-primary,#9F48AB)!important;
}
.zpf-service-compatibility .zpc-fullreport .zpc-cat-title::after{border-bottom-color:var(--zpu-compat-primary,#9F48AB)!important}
.zpf-service-compatibility .zpc-fullreport h4,
.zpf-service-compatibility .zpc-fullreport .zpc-aspect-title,
.zpf-service-compatibility .zpc-fullreport a{
  color:var(--zpu-compat-secondary,#018CAF)!important;
}
.zpf-service-compatibility .zpc-fullreport .zpc-cat-card{
  background:var(--zpu-card-bg,var(--zpu-surface,#fff))!important;
  border-color:var(--zpu-card-border,var(--zpu-border,#e5e5e7))!important;
  color:var(--zpu-card-text,var(--zpu-text,#222))!important;
  box-shadow:none!important;
}
.zpf-service-compatibility .zpc-fullreport .zpc-cat-label{color:var(--zpu-card-text,var(--zpu-text,#222))!important}
.zpf-service-compatibility .zpc-fullreport .zpc-cat-score{color:var(--zpu-muted,#666)!important}
.zpf-service-compatibility .zpc-fullreport .zpc-cat-bar-wrap{background:color-mix(in srgb,var(--zpu-border,#e5e5e7) 82%,var(--zpu-surface,#fff))!important}
.zpf-service-compatibility .zpc-thermo-card{
  background:var(--zpu-card-bg,var(--zpu-surface,#fff))!important;
  border-color:var(--zpu-card-border,var(--zpu-border,#e5e5e7))!important;
  color:var(--zpu-card-text,var(--zpu-text,#222))!important;
  border-radius:var(--zpu-card-radius,var(--zpu-radius,14px))!important;
}
.zpf-service-compatibility .zpc-thermo-card .title,
.zpf-service-compatibility .zpc-thermo-card .score{color:var(--zpu-compat-primary,#9F48AB)!important}
.zpf-service-compatibility .zpc-thermo-card .subtitle{color:var(--zpu-compat-secondary,#018CAF)!important}
.zpf-service-compatibility .zpc-thermo-card .bar{background:color-mix(in srgb,var(--zpu-border,#e5e5e7) 85%,var(--zpu-surface,#fff))!important}
.zpf-service-compatibility .zpc-thermo-card .fill{background:linear-gradient(90deg,var(--zpu-compat-secondary,#018CAF),var(--zpu-compat-primary,#9F48AB))!important}
.zpf-service-compatibility .zpc-thermo-card .icons li[data-active="1"]{color:var(--zpu-compat-primary,#9F48AB)!important}

/* Report delivery/browser card follows the frontend theme. PDF generated after submission does not use these selectors. */
.zpf-service-compatibility .zpc-report-delivery-band__title,
.zpf-service-compatibility .zpc-report-delivery-card__title{color:var(--zpu-compat-primary,#9F48AB)!important}
.zpf-service-compatibility .zpc-report-delivery-band__desc,
.zpf-service-compatibility .zpc-report-delivery-card__desc,
.zpf-service-compatibility .zpc-report-delivery-band__scroll-note,
.zpf-service-compatibility .zpc-report-email-form__check{color:var(--zpu-card-text,var(--zpu-text,#222))!important}
.zpf-service-compatibility .zpc-report-delivery-band__scroll-note a,
.zpf-service-compatibility .zpc-report-email-form__terms-link{color:var(--zpu-compat-secondary,#018CAF)!important}
.zpf-service-compatibility .zpc-report-delivery-card{
  background:var(--zpu-card-bg,var(--zpu-surface,#fff))!important;
  color:var(--zpu-card-text,var(--zpu-text,#222))!important;
  border-color:var(--zpu-card-border,var(--zpu-border,#e5e5e7))!important;
  border-radius:var(--zpu-card-radius,var(--zpu-radius,14px))!important;
}
.zpf-service-compatibility .zpc-report-email-form__field{
  background:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;
  color:var(--zpu-field-text,var(--zpu-text,#222))!important;
  border-color:var(--zpu-field-border,var(--zpu-border,#d9dfe3))!important;
}

/* Browser print must fall back to original export colors, regardless of active frontend template. */
@media print{
  .zpf-service-birth-chart .zp-report-caption{color:#384b83!important}
  .zpf-service-birth-chart .zp-chart-drawing{clip-path:none!important;-webkit-clip-path:none!important}
  .zpf-service-compatibility svg.zpc-chart--synastry :where(.zpc-plA,.zpc-lblA){fill:#405592!important;color:#405592!important}
  .zpf-service-compatibility svg.zpc-chart--synastry :where(.zpc-plB,.zpc-lblB){fill:#E236A5!important;color:#E236A5!important}
  .zpf-service-compatibility .zpc-details-grid{--zpc-a:#405592!important;--zpc-b:#E236A5!important}
  .zpf-service-compatibility .zpc-fullreport h3,.zpf-service-compatibility .zpc-fullreport .zpc-cat-title{color:#c0178e!important}
  .zpf-service-compatibility .zpc-fullreport h4,.zpf-service-compatibility .zpc-fullreport .zpc-aspect-title{color:#3a4d81!important}
  .zpf-service-compatibility .zpc-fullreport :where(p,li,.zpc-cat-summary,.zpc-aspect-text){color:#222!important}
  .zpf-service-compatibility .zpc-fullreport .zpc-cat-card{background:#fff!important;border-color:#e5e5e7!important;color:#222!important}
  .zpf-service-compatibility .zpc-thermo-card{background:#fff!important;color:#222!important;border-color:#7c7c7c!important}
  .zpf-service-compatibility .zpc-thermo-card .title,.zpf-service-compatibility .zpc-thermo-card .score{color:#9f48ab!important}
  .zpf-service-compatibility .zpc-thermo-card .subtitle{color:#018caf!important}
}


/* rc.17 layout and legacy-browser refinements */
.zpf-service-birth-chart #zp-report-wrap,
.zpf-service-birth-chart .zpf-birth-report-stage{display:flex;flex-direction:column;align-items:center}
.zpf-service-birth-chart .zpf-birth-report-stage{width:100%;gap:10px}
.zpf-service-birth-chart .zp-report-caption,
.zpf-service-birth-chart #zp-report-wrap .zp-report-caption{width:100%;margin:10px auto 0!important;text-align:center!important;font-size:clamp(28px,3vw,40px)!important;line-height:1.25!important;color:var(--zpu-title-color,var(--zpu-text,#222))!important}
.zpf-service-birth-chart .zp-chart-drawing{display:block;margin:8px auto 18px!important;border:0!important;box-shadow:none!important;background:transparent!important;mask-image:radial-gradient(circle at center,#000 98.8%,transparent 100%);-webkit-mask-image:radial-gradient(circle at center,#000 98.8%,transparent 100%)}
.zpf-service-birth-chart .zp-chart-drawing img{display:block;margin:auto;border:0!important;box-shadow:none!important;background:transparent!important}
.zpf-service-birth-chart .zp-report-header{max-width:min(100%,460px);margin:0 auto 18px!important}
.zpf-service-birth-chart #zp-report-content{max-width:900px;margin:0 auto}
.zpf-service-birth-chart .zpf-birth-chart-actions{display:flex;justify-content:center;width:100%;margin:0 0 14px}
.zpf-service-compatibility .zpc-compat form,
.zpf-service-compatibility .zpc-compat .zpc-form,
.zpf-service-compatibility .zpc-compat-form,
.zpf-service-compatibility .zpc-compat-form form{background:var(--zpu-surface,#fff)!important;color:var(--zpu-text,#222)!important}
.zpf-service-compatibility .zpc-compat .zpc-person,
.zpf-service-compatibility .zpc-compat .zpc-person-label,
.zpf-service-compatibility .zpc-compat-form .zpc-person,
.zpf-service-compatibility .zpc-compat-form .zpc-person-label{background:var(--zpu-panel,#faf8fb)!important;color:var(--zpu-text,#222)!important;border-color:var(--zpu-border,#e5e5e7)!important}
.zpf-service-compatibility .zpc-compat :is(input,select,button,.button),
.zpf-service-compatibility .zpc-compat-form :is(input,select,button,.button){background:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;color:var(--zpu-field-text,var(--zpu-text,#222))!important;border-color:var(--zpu-field-border,var(--zpu-border,#e5e5e7))!important}
.zpf-service-compatibility .zpc-compat :is(button,.button,[type=submit]),
.zpf-service-compatibility .zpc-compat-form :is(button,.button,[type=submit]){background:var(--zpu-button-bg,var(--zpu-accent,#6d2b76))!important;color:var(--zpu-button-text,#fff)!important;border-color:var(--zpu-button-border,var(--zpu-accent,#6d2b76))!important}
.zpf-service-compatibility .zpc-fullreport .zpc-report-panel,
.zpf-service-compatibility .zpc-fullreport .zpc-thermo-card,
.zpf-service-compatibility .zpc-fullreport .zpc-house-card,
.zpf-service-compatibility .zpc-fullreport .zpc-summary-card,
.zpf-service-compatibility .zpc-fullreport .zpc-category-card{background:var(--zpu-card-bg,var(--zpu-surface,#fff))!important;border-color:var(--zpu-card-border,var(--zpu-border,#e5e5e7))!important;color:var(--zpu-card-text,var(--zpu-text,#222))!important}
.zpf-service-compatibility .zpc-fullreport :is(.zpc-thermo-card .title,.zpc-report-delivery-band__title,.zpc-section-title,.zpc-category-title){color:var(--zpu-compat-primary,var(--zpu-accent,#6d2b76))!important}
.zpf-service-compatibility .zpc-fullreport :is(.zpc-thermo-card .subtitle,.zpc-report-delivery-band__subtitle,.zpc-category-subtitle){color:var(--zpu-compat-secondary,var(--zpu-text,#222))!important}
.zpf-service-compatibility .zpc-fullreport :is(a,.button,button,[type=button],[type=submit]){color:var(--zpu-compat-primary,var(--zpu-accent,#6d2b76))!important}
.zpf-service-compatibility .zpc-fullreport :is(.zpc-sym,svg,[class*="zpc-icon"],.zpc-report-icon){color:var(--zpu-compat-secondary,var(--zpu-accent,#6d2b76))!important;fill:currentColor!important;stroke:currentColor!important}
@media(max-width:700px){.zpf-saved-card{grid-template-columns:1fr}.zpf-saved-card .zpf-secondary{width:100%}}


/* rc.18 compatibility browser refinements. Export/print colors are still reset by the existing print/export rules. */
.zpf-service-compatibility .zpc-compat :where(label,.zpc-label,.zpc-field-label,.zpc-unknown-time,.zp-unknown-time-field),
.zpf-service-compatibility .zpc-compat-form :where(label,.zpc-label,.zpc-field-label,.zpc-unknown-time,.zp-unknown-time-field){
  color:var(--zpu-field-text,var(--zpu-text,#222))!important;
}
.zpf-service-compatibility .zpc-compat :where(input:not([type=checkbox]):not([type=radio]),select,textarea),
.zpf-service-compatibility .zpc-compat-form :where(input:not([type=checkbox]):not([type=radio]),select,textarea){
  background-color:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;
  color:var(--zpu-field-text,var(--zpu-text,#222))!important;
  border-color:var(--zpu-field-border,var(--zpu-border,#d9dfe3))!important;
  -webkit-text-fill-color:var(--zpu-field-text,var(--zpu-text,#222))!important;
}
.zpf-service-compatibility .zpc-compat select option,
.zpf-service-compatibility .zpc-compat-form select option{
  background:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;
  color:var(--zpu-field-text,var(--zpu-text,#222))!important;
}
.zpf-service-compatibility .zpc-compat :where(input[type=checkbox],input[type=radio]) + span,
.zpf-service-compatibility .zpc-compat-form :where(input[type=checkbox],input[type=radio]) + span{
  color:var(--zpu-field-text,var(--zpu-text,#222))!important;
}

/* The Compatibility SVG uses the original A/B hex colors on some glyphs rather than stable classes.
   Map those browser-only defaults to the active template Side A / Side B palette. */
.zpf-service-compatibility svg.zpc-chart--synastry :where([fill="#3A4D81"],[fill="#3a4d81"],[fill="#405592"],[fill="#405592ff"],[fill="#405592FF"]){fill:var(--zpu-side-a,#405592)!important}
.zpf-service-compatibility svg.zpc-chart--synastry :where([stroke="#3A4D81"],[stroke="#3a4d81"],[stroke="#405592"],[stroke="#405592ff"],[stroke="#405592FF"]){stroke:var(--zpu-side-a,#405592)!important}
.zpf-service-compatibility svg.zpc-chart--synastry :where([fill="#E638A2"],[fill="#e638a2"],[fill="#E236A5"],[fill="#e236a5"],[fill="#E236A5ff"],[fill="#E236A5FF"]){fill:var(--zpu-side-b,#E236A5)!important}
.zpf-service-compatibility svg.zpc-chart--synastry :where([stroke="#E638A2"],[stroke="#e638a2"],[stroke="#E236A5"],[stroke="#e236a5"],[stroke="#E236A5ff"],[stroke="#E236A5FF"]){stroke:var(--zpu-side-b,#E236A5)!important}
.zpf-service-compatibility svg.zpc-chart--synastry :where([style*="fill: #3A4D81"],[style*="fill:#3A4D81"],[style*="fill: #3a4d81"],[style*="fill:#3a4d81"],[style*="fill: #405592"],[style*="fill:#405592"]){fill:var(--zpu-side-a,#405592)!important;color:var(--zpu-side-a,#405592)!important}
.zpf-service-compatibility svg.zpc-chart--synastry :where([style*="stroke: #3A4D81"],[style*="stroke:#3A4D81"],[style*="stroke: #3a4d81"],[style*="stroke:#3a4d81"],[style*="stroke: #405592"],[style*="stroke:#405592"]){stroke:var(--zpu-side-a,#405592)!important}
.zpf-service-compatibility svg.zpc-chart--synastry :where([style*="fill: #E638A2"],[style*="fill:#E638A2"],[style*="fill: #e638a2"],[style*="fill:#e638a2"],[style*="fill: #E236A5"],[style*="fill:#E236A5"],[style*="fill: #e236a5"],[style*="fill:#e236a5"]){fill:var(--zpu-side-b,#E236A5)!important;color:var(--zpu-side-b,#E236A5)!important}
.zpf-service-compatibility svg.zpc-chart--synastry :where([style*="stroke: #E638A2"],[style*="stroke:#E638A2"],[style*="stroke: #e638a2"],[style*="stroke:#e638a2"],[style*="stroke: #E236A5"],[style*="stroke:#E236A5"],[style*="stroke: #e236a5"],[style*="stroke:#e236a5"]){stroke:var(--zpu-side-b,#E236A5)!important}

/* Full Compatibility report: replace original purple/cyan ownership with the active frontend palette. */
.zpf-service-compatibility :where(.zpc-fullreport,.zpc-report,.zpc-results,.zpc-result-wrap,.zpc-compat-result) :where(h2,h3,.zpc-cat-title,.zpc-category-title,.zpc-section-title,.zpc-report-title,.zpc-cat-head){
  color:var(--zpu-compat-primary,var(--zpu-accent,#6d2b76))!important;
}
.zpf-service-compatibility :where(.zpc-fullreport,.zpc-report,.zpc-results,.zpc-result-wrap,.zpc-compat-result) :where(.zpc-cat-icon,.zpc-category-icon,.zpc-report-icon,.zpc-section-icon,[class*="category-icon"],[class*="cat-icon"]){
  color:var(--zpu-compat-secondary,var(--zpu-accent,#6d2b76))!important;
  fill:currentColor!important;stroke:currentColor!important;
}
.zpf-service-compatibility [class*="zpc-"] a{
  color:var(--zpu-compat-primary,var(--zpu-accent,#6d2b76))!important;
  text-decoration-color:currentColor!important;
}
.zpf-service-compatibility [class*="zpc-"] :where(.button,button,[role=button]){
  --zpc-browser-button-bg:var(--zpu-button-bg,var(--zpu-compat-primary,#6d2b76));
}
.zpf-service-compatibility [class*="zpc-"] :where(.button,button,[role=button]):not(.zpf-lab-nav *){
  background:var(--zpu-button-bg,var(--zpu-compat-primary,#6d2b76))!important;
  color:var(--zpu-button-text,#fff)!important;
  border-color:var(--zpu-button-border,var(--zpu-button-bg,var(--zpu-compat-primary,#6d2b76)))!important;
}

/* Catch original report colors when they are emitted inline. */
.zpf-service-compatibility :where([style*="#9F48AB"],[style*="#9f48ab"]){color:var(--zpu-compat-primary,#9F48AB)!important;border-color:var(--zpu-compat-primary,#9F48AB)!important}
.zpf-service-compatibility :where([style*="#018CAF"],[style*="#018caf"]){color:var(--zpu-compat-secondary,#018CAF)!important;border-color:var(--zpu-compat-secondary,#018CAF)!important}


/* rc.18 broad legacy report fallback selectors. The Compatibility plugin has several report templates. */
.zpf-service-compatibility [class*="zpc-"] :where(h2,h3,.zpc-cat-title,.zpc-category-title,.zpc-category-name,.zpc-section-title,.zpc-report-title){
  color:var(--zpu-compat-primary,var(--zpu-accent,#6d2b76))!important;
}
.zpf-service-compatibility [class*="zpc-"] :where(h4,.zpc-aspect-title,.zpc-subtitle){
  color:var(--zpu-compat-secondary,var(--zpu-accent,#6d2b76))!important;
}
.zpf-service-compatibility .zpf-zpc-theme-icon{
  display:inline-block;flex:0 0 auto;width:1.1em;height:1.1em;margin-inline:.22em;
  background:var(--zpu-compat-secondary,var(--zpu-accent,#6d2b76));
  -webkit-mask-image:var(--zpc-theme-icon);mask-image:var(--zpc-theme-icon);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;vertical-align:-.14em;
}

/* rc.19 legacy Compatibility bridge.
   Browser styling only. Compatibility PDF/email generation keeps its own original light/export palette. */

/* Single natal image: clip the raster fringe and place a neutral edge above it. */
.zpf-service-birth-chart .zp-chart-drawing{
  position:relative!important;
  overflow:hidden!important;
  border-radius:50%!important;
  clip-path:circle(49.55% at 50% 50%)!important;
  -webkit-clip-path:circle(49.55% at 50% 50%)!important;
  mask-image:none!important;
  -webkit-mask-image:none!important;
  box-shadow:0 0 0 1px #4b4f52!important;
}
.zpf-service-birth-chart .zp-chart-drawing img{
  width:100%;height:auto;border-radius:50%!important;
  clip-path:circle(49.6% at 50% 50%)!important;
  -webkit-clip-path:circle(49.6% at 50% 50%)!important;
}
.zpf-service-birth-chart .zp-chart-drawing::after{
  content:"";position:absolute;inset:1px;z-index:4;pointer-events:none;
  border:1.5px solid #4b4f52;border-radius:50%;box-sizing:border-box;
}

/* Compatibility form: beat the plugin's fixed light-mode rules after rc.19 JS removes inline !important presentation. */
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-form,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form form{
  background:var(--zpu-surface,#fff)!important;
  color:var(--zpu-text,#222)!important;
  border-color:var(--zpu-border,#e5e5e7)!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-person,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form .zpc-person{
  background:var(--zpu-panel,var(--zpu-card-bg,var(--zpu-surface,#fff)))!important;
  color:var(--zpu-card-text,var(--zpu-text,#222))!important;
  border-color:var(--zpu-card-border,var(--zpu-border,#e5e5e7))!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-person label,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-row label,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-city-wrap label,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form label{
  color:var(--zpu-muted,var(--zpu-text,#222))!important;
  background:transparent!important;
  -webkit-text-fill-color:currentColor!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-unknown,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-unknown>span:not(.zpc-cb-visual),
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form .zpc-unknown,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form .zpc-unknown>span:not(.zpc-cb-visual){
  color:var(--zpu-field-text,var(--zpu-text,#222))!important;
  -webkit-text-fill-color:var(--zpu-field-text,var(--zpu-text,#222))!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-person input:not([type=checkbox]):not([type=radio]),
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-person select,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-person textarea,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form input:not([type=checkbox]):not([type=radio]),
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form select,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form textarea{
  background:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;
  background-color:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;
  color:var(--zpu-field-text,var(--zpu-text,#222))!important;
  -webkit-text-fill-color:var(--zpu-field-text,var(--zpu-text,#222))!important;
  border-color:var(--zpu-field-border,var(--zpu-border,#d9dfe3))!important;
  box-shadow:none!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-person select option,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form select option{
  background:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;
  color:var(--zpu-field-text,var(--zpu-text,#222))!important;
  -webkit-text-fill-color:var(--zpu-field-text,var(--zpu-text,#222))!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-cb-visual,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form .zpc-cb-visual{
  background:var(--zpu-field-bg,var(--zpu-surface,#fff))!important;
  border-color:var(--zpu-accent,#6d2b76)!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat input[type=checkbox]:checked + .zpc-cb-visual,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form input[type=checkbox]:checked + .zpc-cb-visual{
  background:var(--zpu-accent,#6d2b76)!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .calculate-button .button,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat button.button-primary,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form button.button-primary,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat [type=submit]{
  background:var(--zpu-button-bg,var(--zpu-accent,#6d2b76))!important;
  color:var(--zpu-button-text,#fff)!important;
  -webkit-text-fill-color:var(--zpu-button-text,#fff)!important;
  border-color:var(--zpu-button-border,var(--zpu-button-bg,var(--zpu-accent,#6d2b76)))!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .calculate-button .button:hover,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat button.button-primary:hover,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form button.button-primary:hover{
  background:var(--zpu-button-hover-bg,var(--zpu-accent-hover,#5b2364))!important;
  color:var(--zpu-button-hover-text,#fff)!important;
  -webkit-text-fill-color:var(--zpu-button-hover-text,#fff)!important;
  border-color:var(--zpu-button-hover-border,var(--zpu-button-hover-bg,var(--zpu-accent-hover,#5b2364)))!important;
}

/* Side labels use the configured browser Side A / Side B palette. */
.zpf-service-compatibility.zpf-service-compatibility .zpc-two>.zpc-person-wrap:first-child>.zpc-person-label,
.zpf-service-compatibility.zpf-service-compatibility .zpc-person-wrap:first-child>.zpc-person-label{color:var(--zpu-side-a,#3A4D81)!important}
.zpf-service-compatibility.zpf-service-compatibility .zpc-two>.zpc-person-wrap:last-child>.zpc-person-label,
.zpf-service-compatibility.zpf-service-compatibility .zpc-person-wrap:last-child>.zpc-person-label{color:var(--zpu-side-b,#E638A2)!important}

/* Browser-only Compatibility SVG theming uses CSS on the native wheel. No SVG node or
   inline attribute is cloned or mutated, so the Compatibility exporter keeps its source markup. */
.zpf-service-compatibility svg.zpc-chart--synastry{display:block;max-width:100%;height:auto}

/* Compatibility category overview/full report colors. These are browser-only CSS overrides. */
.zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-label,
.zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-readmore,
.zpf-service-compatibility.zpf-service-compatibility .zpc-report-heading,
.zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport h3,
.zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport .zpc-cat-title{
  color:var(--zpu-compat-primary,var(--zpu-accent,#9F48AB))!important;
  text-decoration-color:currentColor!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .zpc-cat-icon-img,
.zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport .zpc-cat-icon-img{
  background-color:var(--zpu-compat-secondary,var(--zpu-accent,#018CAF))!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-label img{
  filter:none!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-body,
.zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport :where(p,li,.zpc-cat-summary,.zpc-aspect-text){
  color:var(--zpu-card-text,var(--zpu-text,#222))!important;
  -webkit-text-fill-color:currentColor!important;
}
/* Compatibility ships some report copy in nested elements with legacy light-theme color and
   teaser/clipping rules. Reset those presentation rules only inside narrative text. */
.zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-body{
  display:block!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;
  overflow:visible!important;text-overflow:clip!important;white-space:normal!important;
  -webkit-line-clamp:unset!important;line-clamp:unset!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-body :where(div,p,li,span,strong,b,em,small),
.zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport :where(p,li,.zpc-cat-summary,.zpc-aspect-text) :where(div,span,strong,b,em,small){
  color:inherit!important;-webkit-text-fill-color:currentColor!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-body :where(span,strong,b,em,small),
.zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport :where(p,li,.zpc-cat-summary,.zpc-aspect-text) :where(span,strong,b,em,small){
  display:inline!important;width:auto!important;max-width:none!important;min-width:0!important;
  overflow:visible!important;text-overflow:clip!important;white-space:normal!important;
  -webkit-line-clamp:unset!important;line-clamp:unset!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport h4,
.zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport .zpc-aspect-title{
  color:var(--zpu-compat-secondary,var(--zpu-accent,#018CAF))!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport a,
.zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-readmore{
  color:var(--zpu-compat-primary,var(--zpu-accent,#9F48AB))!important;
}

/* Dark-mode semantic chips keep the same semantic backgrounds but use 300-level foregrounds. */
.zpf-service-personal-forecast,
.zpf-service-relationship-forecast,
.zpf-service-public-sign,
.zpf-service-compatibility{
  --zpu-chip-positive-dark:#86EFAC;
  --zpu-chip-negative-dark:#FCA5A5;
  --zpu-chip-mixed-dark:#FDE047;
}
.zpf-service-personal-forecast .is-positive,
.zpf-service-relationship-forecast .is-positive,
.zpf-service-compatibility .chip:is(.chip-excellent,.chip-great,.chip-good,.chip-positive){color:var(--zpu-chip-positive-text,#86EFAC)!important}
.zpf-service-personal-forecast .is-negative,
.zpf-service-relationship-forecast .is-negative,
.zpf-service-compatibility .chip:is(.chip-challenging,.chip-bad,.chip-horrible,.chip-poor){color:var(--zpu-chip-negative-text,#FCA5A5)!important}
.zpf-service-personal-forecast .is-mixed,
.zpf-service-relationship-forecast .is-mixed,
.zpf-service-compatibility .chip:is(.chip-mixed,.chip-neutral){color:var(--zpu-chip-mixed-text,#FDE047)!important}

/* Export/print must never use browser skin recoloring. */
@media print{
  .zpf-service-birth-chart .zp-chart-drawing{
    clip-path:none!important;-webkit-clip-path:none!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important
  }
  .zpf-service-birth-chart .zp-chart-drawing::after{display:none!important}
  .zpf-service-birth-chart .zp-chart-drawing img{clip-path:none!important;-webkit-clip-path:none!important;border-radius:0!important}
  .zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-label,
  .zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .cc-readmore,
  .zpf-service-compatibility.zpf-service-compatibility .zpc-report-heading{color:#9f48ab!important}
  .zpf-service-compatibility.zpf-service-compatibility .zpc-cat-card-item .zpc-cat-icon-img,
  .zpf-service-compatibility.zpf-service-compatibility .zpc-fullreport .zpc-cat-icon-img{background-color:#0188aa!important}
}

/* rc.19 unknown-time control dimensions survive removal of legacy inline presentation. */
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat input[type="checkbox"][name$="unknown_time"],
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form input[type="checkbox"][name$="unknown_time"]{
  position:absolute!important;opacity:0!important;width:0!important;height:0!important;pointer-events:none!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-cb-visual,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat-form .zpc-cb-visual{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:18px!important;height:18px!important;min-width:18px!important;flex:0 0 18px!important;
  border-width:2px!important;border-style:solid!important;border-radius:4px!important;
}
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-person input:-webkit-autofill,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-person input:-webkit-autofill:hover,
.zpf-service-compatibility.zpf-service-compatibility .zpc-compat .zpc-person input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--zpu-field-text,var(--zpu-text,#222))!important;
  -webkit-box-shadow:0 0 0 1000px var(--zpu-field-bg,var(--zpu-surface,#fff)) inset!important;
  box-shadow:0 0 0 1000px var(--zpu-field-bg,var(--zpu-surface,#fff)) inset!important;
}

/* rc.24 Compatibility export isolation and aspect/title contrast fixes. */
.zpf-service-compatibility .zpc-fullreport :where(h4,.zpc-aspect-title,.zpc-aspect-head,.zpc-aspect-header,.zpc-title-row,.zpc-title-line,.zpc-subtitle),
.zpf-service-compatibility .zpc-fullreport :where(.zpc-title-text,.zpc-name,.zpc-title-planet,.zpc-title-sign,.zpc-title-house,.zpc-title-aspect){
  color:var(--zpu-card-text,var(--zpu-text,#222))!important;
  -webkit-text-fill-color:currentColor!important;
}
.zpf-service-compatibility .zpc-fullreport :where(h4,.zpc-aspect-title,.zpc-aspect-head,.zpc-aspect-header,.zpc-title-row,.zpc-title-line,.zpc-subtitle) :where(span,strong,b,small,bdi,a),
.zpf-service-compatibility .zpc-fullreport :where(.zpc-title-text,.zpc-name,.zpc-title-planet,.zpc-title-sign,.zpc-title-house,.zpc-title-aspect) :where(span,strong,b,small,bdi,a){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
}
.zpf-service-compatibility .zpc-fullreport :where(h4,.zpc-aspect-title,.zpc-aspect-head,.zpc-aspect-header,.zpc-title-row,.zpc-title-line,.zpc-subtitle,.zpc-title-text,.zpc-name,.zpc-title-planet,.zpc-title-sign,.zpc-title-house,.zpc-title-aspect) .zpc-sym,
.zpf-service-compatibility .zpc-fullreport :where(h4,.zpc-aspect-title,.zpc-aspect-head,.zpc-aspect-header,.zpc-title-row,.zpc-title-line,.zpc-subtitle,.zpc-title-text,.zpc-name,.zpc-title-planet,.zpc-title-sign,.zpc-title-house,.zpc-title-aspect) [class*="zpc-icon"]{
  color:var(--zpu-symbol-color,var(--zpu-compat-secondary,#018CAF))!important;
  fill:currentColor!important;
  stroke:currentColor!important;
  -webkit-text-fill-color:currentColor!important;
}

/* Compatibility semantic chips use contrast-based foregrounds because their fills are light/pastel in both host modes. */
.zpf-service-compatibility .chip{ -webkit-text-fill-color:currentColor!important; }
.zpf-service-compatibility .chip:is(.chip-excellent,.chip-great,.chip-good,.chip-positive){ color:#287A4D!important; }
.zpf-service-compatibility .chip:is(.chip-challenging,.chip-bad,.chip-horrible,.chip-poor,.chip-negative){ color:#A93D3D!important; }
.zpf-service-compatibility .chip:is(.chip-mixed,.chip-neutral){ color:#8A6500!important; }
.zpf-service-compatibility .chip:is(.chip-strength,.chip-weight){ color:#ffffff!important; }
.zpf-service-compatibility .chip:is(.chip-orb,.chip-default,.chip-gray){ color:#2E3645!important; }

/* Export documents and browser print must keep the original Compatibility light/export palette. */
@media print{
  body .zpf-service-compatibility .chip:is(.chip-excellent,.chip-great,.chip-good,.chip-positive),
  body[data-theme] .zpf-service-compatibility .chip:is(.chip-excellent,.chip-great,.chip-good,.chip-positive){ color:#287A4D!important; }
  body .zpf-service-compatibility .chip:is(.chip-challenging,.chip-bad,.chip-horrible,.chip-poor,.chip-negative),
  body[data-theme] .zpf-service-compatibility .chip:is(.chip-challenging,.chip-bad,.chip-horrible,.chip-poor,.chip-negative){ color:#A93D3D!important; }
  body .zpf-service-compatibility .chip:is(.chip-mixed,.chip-neutral),
  body[data-theme] .zpf-service-compatibility .chip:is(.chip-mixed,.chip-neutral){ color:#8A6500!important; }
  body .zpf-service-compatibility .chip:is(.chip-strength,.chip-weight),
  body[data-theme] .zpf-service-compatibility .chip:is(.chip-strength,.chip-weight){ color:#ffffff!important; }
  body .zpf-service-compatibility .chip:is(.chip-orb,.chip-default,.chip-gray),
  body[data-theme] .zpf-service-compatibility .chip:is(.chip-orb,.chip-default,.chip-gray){ color:#2E3645!important; }

  body .zpf-service-compatibility .zpc-fullreport :where(h4,.zpc-aspect-title,.zpc-aspect-head,.zpc-aspect-header,.zpc-title-row,.zpc-title-line,.zpc-subtitle,.zpc-title-text,.zpc-name,.zpc-title-planet,.zpc-title-sign,.zpc-title-house,.zpc-title-aspect),
  body[data-theme] .zpf-service-compatibility .zpc-fullreport :where(h4,.zpc-aspect-title,.zpc-aspect-head,.zpc-aspect-header,.zpc-title-row,.zpc-title-line,.zpc-subtitle,.zpc-title-text,.zpc-name,.zpc-title-planet,.zpc-title-sign,.zpc-title-house,.zpc-title-aspect){
    color:#3A4D81!important;
    -webkit-text-fill-color:currentColor!important;
  }
  body .zpf-service-compatibility .zpc-fullreport :where(h4,.zpc-aspect-title,.zpc-aspect-head,.zpc-aspect-header,.zpc-title-row,.zpc-title-line,.zpc-subtitle,.zpc-title-text,.zpc-name,.zpc-title-planet,.zpc-title-sign,.zpc-title-house,.zpc-title-aspect) .zpc-sym,
  body[data-theme] .zpf-service-compatibility .zpc-fullreport :where(h4,.zpc-aspect-title,.zpc-aspect-head,.zpc-aspect-header,.zpc-title-row,.zpc-title-line,.zpc-subtitle,.zpc-title-text,.zpc-name,.zpc-title-planet,.zpc-title-sign,.zpc-title-house,.zpc-title-aspect) .zpc-sym{
    color:#fa4db5!important;
    -webkit-text-fill-color:currentColor!important;
  }
}

/* rc.34: Compatibility export isolation.
   Some Compatibility builds keep PDF-named wrappers around the live on-screen SVG.
   Therefore export-safe colors must NOT be keyed from .zpc-pdf-page/.zpc-report-pdf/.zpc-report-email
   during normal screen rendering. Only the explicit export-mode body class and @media print
   restore the original Compatibility palette. */
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#fff"],
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#FFFFFF"],
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#ffffff"]{fill:#fff!important}
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#E6E8ED"],
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#e6e8ed"]{fill:#E6E8ED!important}
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#CFD9E5"],
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry circle[fill="#cfd9e5"]{fill:#CFD9E5!important}
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry :where(circle,line,path)[stroke="#363636ff"],
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry :where(circle,line,path)[stroke="#363636"],
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry :where(circle,line,path)[stroke="#363636FF"]{stroke:#363636!important}
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry text[fill="#363636ff"],
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry text[fill="#363636"]{fill:#363636!important}
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry .halo{stroke:#fff!important}
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry :where(.zpc-plA,.zpc-lblA){fill:#405592!important;color:#405592!important}
body.zpf-compat-export-mode .zpf-service-compatibility svg.zpc-chart--synastry :where(.zpc-plB,.zpc-lblB){fill:#E236A5!important;color:#E236A5!important}

/* rc.34 uses only the native chart elements in normal browser flow. */
.zpf-service-compatibility svg.zpf-synastry-native-source,
.zpf-service-compatibility svg.zpf-compat-native-source{display:block!important}
.zpf-service-compatibility svg.zpf-themed-synastry-clone,
.zpf-service-compatibility svg.zpf-compat-browser-svg{display:none!important}
.zpf-service-birth-chart img.zp-chart-drawing{display:block!important}

/* rc.30: Forecast UI never uses underlined links. Keep original/native plugin pages untouched. */
:where(.zpf-app,.zpf-legacy-chart,.zpf-lab-nav,.zpf-service-public-index,.zpf-service-public-sign) a,
:where(.zpf-app,.zpf-legacy-chart,.zpf-lab-nav,.zpf-service-public-index,.zpf-service-public-sign) a:hover,
:where(.zpf-app,.zpf-legacy-chart,.zpf-lab-nav,.zpf-service-public-index,.zpf-service-public-sign) a:focus,
:where(.zpf-app,.zpf-legacy-chart,.zpf-lab-nav,.zpf-service-public-index,.zpf-service-public-sign) a:active,
:where(.zpf-app,.zpf-legacy-chart,.zpf-lab-nav,.zpf-service-public-index,.zpf-service-public-sign) a:visited{
  text-decoration:none!important;
  text-decoration-line:none!important;
  text-decoration-thickness:0!important;
}


/* rc.36: Forecast-managed pages use the full width of the host theme's content column.
   Width is owned by the WordPress/theme content area; Forecasts must not add a second 900/1060px cap.
   These are screen-layout rules only; export mode keeps the Compatibility plugin's document sizing. */
@media screen{
  .zpf-legacy-chart,
  .zpf-service-birth-chart,
  .zpf-service-compatibility,
  .zpf-service-birth-chart #zp-form-wrap,
  .zpf-service-birth-chart #zp-form-wrap h2,
  .zpf-service-birth-chart #zp-form-wrap .zp-form,
  .zpf-service-birth-chart #zp-report-wrap,
  .zpf-service-birth-chart #zp-report-content,
  .zpf-service-compatibility .zpc-compat,
  .zpf-service-compatibility .zpc-compat-form,
  .zpf-service-compatibility .zpc-compat .zpc-form,
  .zpf-service-compatibility .zpc-compat-form>form,
  body:not(.zpf-compat-export-mode) .zpf-service-compatibility .zpc-result-page,
  body:not(.zpf-compat-export-mode) .zpf-service-compatibility .zpc-pdf-page,
  body:not(.zpf-compat-export-mode) .zpf-service-compatibility [class*="zpc-pdf-page-"]{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
  }

  /* Keep normal vertical spacing, but remove legacy horizontal centering caps from report bodies. */
  .zpf-service-birth-chart #zp-report-wrap,
  .zpf-service-birth-chart #zp-report-content,
  body:not(.zpf-compat-export-mode) .zpf-service-compatibility .zpc-result-page,
  body:not(.zpf-compat-export-mode) .zpf-service-compatibility .zpc-pdf-page,
  body:not(.zpf-compat-export-mode) .zpf-service-compatibility [class*="zpc-pdf-page-"]{
    margin-inline:0!important;
  }
}

/* rc.37: scale the managed natal wheel to the larger desktop footprint without over-enlarging the raster.
   ZodiacPress outputs img.zp-chart-drawing with an intrinsic 660px size; cap browser scaling at 900px to reduce blur
   responsively inside the Forecast-managed content column without changing export behavior. */
@media screen and (min-width:721px){
  .zpf-service-birth-chart img.zp-chart-drawing{
    width:min(100%,900px)!important;
    max-width:900px!important;
    height:auto!important;
    margin-inline:auto!important;
  }
}
@media screen and (max-width:720px){
  .zpf-service-birth-chart img.zp-chart-drawing{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
  }
}
