/* ZodiacPress Forecasts frontend. Shared visual values come from --zpu-* variables. */
.zpf-app{
  --zpf-ink:var(--zpu-text,#20232a);
  --zpf-muted:var(--zpu-muted,#666);
  --zpf-line:var(--zpu-border,#e5e5e7);
  --zpf-accent:var(--zpu-accent,#6d2b76);
  --zpf-panel:var(--zpu-panel,#faf8fb);
  --zpf-surface:var(--zpu-surface,#fff);
  color-scheme:var(--zpu-color-scheme,light);box-sizing:border-box;width:100%;max-width:1060px;margin:24px auto;color:var(--zpf-ink);
  background:var(--zpu-page-bg,transparent);font-family:var(--zpu-font,Arial,"Noto Sans Hebrew",sans-serif);font-size:var(--zpu-body-size,16px);line-height:1.5;text-align:start
}
.zpf-app *{box-sizing:border-box}
.zpf-app :where(h2,h3,h4,p){font-family:inherit;color:inherit;text-align:start}
.zpf-app h2{font-size:var(--zpu-title-size,32px);font-weight:700;letter-spacing:-.02em;line-height:1.35}
.zpf-app h3{font-size:var(--zpu-subtitle-size,23px);line-height:1.4;margin:30px 0 16px}
.zpf-app h4{font-size:var(--zpu-card-title-size,18px);line-height:1.4;margin:0}
.zpf-app p{font-size:var(--zpu-body-size,16px);line-height:1.6}
.zpf-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--zpf-muted)}
.zpf-form-head{max-width:900px;margin:0 auto;padding:0 20px 18px}
.zpf-form-head h2{margin:0 0 6px}
.zpf-form-head p{max-width:760px;margin:0;color:var(--zpf-muted);font-size:15px}
.zpf-form{max-width:900px;margin:0 auto;padding:20px;background:var(--zpf-surface);border:1px solid var(--zpf-line);border-radius:var(--zpu-radius,14px)}
.zpf-results{max-width:1060px;margin:24px auto 0;padding:24px 20px;background:var(--zpf-panel);border-radius:var(--zpu-radius,14px);color:var(--zpf-ink)}
.zpf-results:empty{display:none}
.zpf-people{display:grid;gap:18px;max-width:none;margin:auto}
.zpf-pair{grid-template-columns:1fr 1fr}
.zpf-person{min-width:0;margin:0;padding:16px;background:var(--zpf-panel);border:1px solid var(--zpf-line);border-radius:var(--zpu-radius,14px)}
.zpf-person legend{padding:0;margin:0 0 12px;font-size:17px;font-weight:700;color:var(--zpf-accent)}
.zpf-person-manual[hidden]{display:none!important}
.zpf-person-fields{min-width:0}
.zpf-person-meta{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(150px,.8fr);gap:12px;margin-bottom:12px}
.zpf-person-meta-3{grid-template-columns:minmax(0,1.5fr) minmax(130px,.8fr) minmax(130px,.8fr)}
.zpf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.zpf-birth-row{margin-bottom:12px}
.zpf-field{display:flex;flex-direction:column;gap:5px;min-width:0;margin:0;font-size:13px;font-weight:600;color:var(--zpf-muted)}
.zpf-profile-picker{margin-bottom:12px}
.zpf-app :where(input,select){display:block;width:100%;min-width:0;max-width:100%;height:44px;padding:8px 11px;border:1px solid var(--zpu-field-border,var(--zpf-line));border-radius:11px;background:var(--zpu-field-bg,var(--zpf-surface));color:var(--zpu-field-text,var(--zpf-ink));box-shadow:none;font:400 15px/1.4 var(--zpu-font,Arial,sans-serif)}
.zpf-app :where(input,select):focus,.zpf-app :where(button,a,summary):focus-visible{outline:0;border-color:var(--zpf-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--zpf-accent) 14%,transparent)}
.zpf-app :where(input[type=date],input[type=time],input[type=number]){direction:ltr;text-align:start}
.zpf-app input::placeholder{color:var(--zpu-field-placeholder,var(--zpf-muted));opacity:1}
.zpf-city-wrap{position:relative}
.zpf-city-results:empty{display:none}
.zpf-city-results{position:absolute;top:100%;inset-inline:0;z-index:30;max-height:280px;overflow:auto;margin-top:4px;padding:5px;background:var(--zpf-surface);border:1px solid var(--zpf-line);border-radius:10px;box-shadow:0 10px 30px color-mix(in srgb,var(--zpf-ink) 12%,transparent)}
.zpf-city-results button{display:block;width:100%;padding:11px 12px;border:0;border-radius:7px;background:var(--zpf-surface);color:var(--zpf-ink);text-align:start;font-weight:400}
.zpf-city-results button:hover{background:var(--zpf-panel)}
.zpf-city-results p{padding:10px;margin:0;font-size:13px}
.zpf-fold-field[hidden]{display:none!important}
.zpf-period-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:14px;align-items:end;margin-top:16px;padding-top:16px;border-top:1px solid var(--zpf-line)}
.zpf-period-action{display:flex;gap:10px;align-items:end}
.zpf-period-action .zpf-primary{min-width:190px}
.zpf-app button{width:auto;min-height:44px;margin:0;padding:11px 22px;border-radius:10px;box-shadow:none;font:700 15px/1.3 var(--zpu-font,Arial,sans-serif);letter-spacing:normal;text-transform:none;cursor:pointer;white-space:normal}
.zpf-app button:disabled{opacity:.6;cursor:wait}
.zpf-primary{background:var(--zpu-button-bg,var(--zpf-accent));border:1px solid var(--zpu-button-border,var(--zpf-accent));border-radius:var(--zpu-button-radius,10px);color:var(--zpu-button-text,#fff)}
.zpf-primary:hover{background:var(--zpu-button-hover-bg,var(--zpu-accent-hover,#5b2364));border-color:var(--zpu-button-hover-border,var(--zpu-button-hover-bg,var(--zpu-accent-hover,#5b2364)));color:var(--zpu-button-hover-text,#fff)}
.zpf-secondary{background:var(--zpf-surface);border:1px solid var(--zpf-line);color:var(--zpf-accent)}
.zpf-secondary:hover{background:var(--zpf-panel);border-color:var(--zpf-accent)}
.zpf-actions,.zpf-save-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}
.zpf-status:empty,.zpf-form-error:empty{display:none}
.zpf-app .zpf-status{margin-bottom:0;color:var(--zpf-muted);font-size:14px}
.zpf-app .zpf-form-error{margin-top:20px;padding:14px;border:1px solid color-mix(in srgb,#ef6b78 55%,var(--zpf-line));border-radius:8px;background:color-mix(in srgb,#c63d4b 14%,var(--zpf-surface));color:color-mix(in srgb,#ef7a84 72%,var(--zpf-ink))}
.zpf-app[aria-busy=true] .zpf-status::before{content:"";display:inline-block;width:14px;height:14px;margin-inline-end:10px;border:2px solid #bccdcb;border-top-color:#274d49;border-radius:50%;animation:zpf-spin .8s linear infinite}
.zpf-app .zpf-muted{color:var(--zpf-muted);font-size:13px}
.zpf-notice{padding:14px 18px;border-inline-start:3px solid color-mix(in srgb,#c29d57 75%,var(--zpf-accent));border-radius:5px;background:color-mix(in srgb,#c29d57 13%,var(--zpf-surface));color:var(--zpf-ink);font-size:14px!important}

/* Results */
.zpf-result-head{display:flex;justify-content:space-between;gap:24px;align-items:center}
.zpf-result-head h2{margin:4px 0 8px;font-size:30px}
.zpf-result-head p{margin:0;color:var(--zpf-muted);font-size:14px}
.zpf-climate{display:flex;flex-direction:column;align-items:center;min-width:150px;max-width:200px;flex-shrink:0;padding:14px 18px;border:1px solid var(--zpf-line);border-radius:18px;background:var(--zpf-surface);color:var(--zpf-ink);text-align:center}
.zpf-climate strong{font-size:42px;line-height:1.35;direction:ltr;unicode-bidi:isolate}
.zpf-climate small{font-size:14px;color:var(--zpf-muted)}
.zpf-climate span{font-size:13px;color:var(--zpf-muted)}

.zpf-climate.zpf-score-red{border-color:#c95f67;background:color-mix(in srgb,#c95f67 12%,var(--zpf-surface))}.zpf-climate.zpf-score-orange{border-color:#d88949;background:color-mix(in srgb,#d88949 12%,var(--zpf-surface))}.zpf-climate.zpf-score-yellow{border-color:#c4a63d;background:color-mix(in srgb,#c4a63d 12%,var(--zpf-surface))}.zpf-climate.zpf-score-green{border-color:#4c9b68;background:color-mix(in srgb,#4c9b68 12%,var(--zpf-surface))}.zpf-climate.zpf-score-blue{border-color:#4e83bd;background:color-mix(in srgb,#4e83bd 12%,var(--zpf-surface))}
.zpf-period-switch{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 12px}
.zpf-period-switch button{min-height:36px;padding:7px 14px;border:1px solid var(--zpu-tab-border,var(--zpf-line));border-radius:var(--zpu-tab-radius,20px);background:var(--zpu-tab-bg,#fff);color:var(--zpu-tab-text,var(--zpf-ink));font-size:13px;font-weight:600}
.zpf-period-switch button:hover{border-color:var(--zpu-tab-hover-border,var(--zpf-accent));background:var(--zpu-tab-hover-bg,var(--zpf-accent));color:var(--zpu-tab-hover-text,#fff)}
.zpf-period-switch button[aria-current=page]{border-color:var(--zpu-tab-active-border,var(--zpf-accent));background:var(--zpu-tab-active-bg,var(--zpf-accent));color:var(--zpu-tab-active-text,#fff)}
.zpf-period-switch-bottom{margin-top:28px}
.zpf-highlights{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}
.zpf-card{padding:25px;border:1px solid var(--zpu-card-border,var(--zpf-line));border-radius:var(--zpu-card-radius,var(--zpu-radius,14px));background:var(--zpu-card-bg,#fff);color:var(--zpu-card-text,var(--zpf-ink))}
.zpf-card h3{margin:10px 0;font-size:var(--zpu-card-title-size,21px)}
.zpf-card p{margin:12px 0 0;color:var(--zpu-card-text,#435369);font-size:15px}
.zpf-pill{display:inline-block;padding:4px 10px;border-radius:20px;background:color-mix(in srgb,var(--zpf-accent) 10%,var(--zpf-surface));color:var(--zpf-ink);font-size:12px;font-weight:600;white-space:nowrap}
.zpf-supportive{background:color-mix(in srgb,#4b9f73 16%,var(--zpf-surface));color:color-mix(in srgb,#4b9f73 78%,var(--zpf-ink))}
.zpf-challenging{background:color-mix(in srgb,#c85b4c 16%,var(--zpf-surface));color:color-mix(in srgb,#d46b5b 78%,var(--zpf-ink))}
.zpf-mixed{background:color-mix(in srgb,#8172b8 16%,var(--zpf-surface));color:color-mix(in srgb,#9588c7 78%,var(--zpf-ink))}
.zpf-categories{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.zpf-category{min-width:0;padding:20px;border:1px solid var(--zpu-card-border,var(--zpf-line));border-radius:var(--zpu-card-radius,var(--zpu-radius,14px));background:var(--zpu-card-bg,#fff);color:var(--zpu-card-text,var(--zpf-ink))}
.zpf-category-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.zpf-category h4{display:flex;align-items:center;gap:9px;margin:0}
.zpf-category-icon{width:var(--zpu-icon-size,28px);height:var(--zpu-icon-size,28px);object-fit:contain;flex:0 0 var(--zpu-icon-size,28px);color:var(--zpu-icon-color,var(--zpf-accent))}.zpf-category-mask{display:inline-block;background-color:currentColor;-webkit-mask-image:var(--zpf-category-mask);mask-image:var(--zpf-category-mask);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.zpf-category strong{font-size:22px;direction:ltr;unicode-bidi:isolate;white-space:nowrap}
.zpf-category strong small{font-size:10px;font-weight:400}
.zpf-scorebar{width:100%;height:8px;margin:14px 0;background:color-mix(in srgb,var(--zpf-line) 82%,var(--zpf-surface));border-radius:999px;overflow:hidden}
.zpf-scorebar span{display:block;height:100%;border-radius:999px}
.zpf-score-red .zpf-scorebar span{background:linear-gradient(90deg,#c62525,#f87171)}
.zpf-score-orange .zpf-scorebar span{background:linear-gradient(90deg,#bd580f,#fb923c)}
.zpf-score-yellow .zpf-scorebar span{background:linear-gradient(90deg,#c09208,#facc15)}
.zpf-score-green .zpf-scorebar span{background:linear-gradient(90deg,#0a8638,#4ade80)}
.zpf-score-blue .zpf-scorebar span{background:linear-gradient(90deg,#0c367a,#60a5fa)}
.zpf-category p{margin:12px 0;color:var(--zpu-card-text,#4c5d70);font-size:14px}
.zpf-category>small{display:block;color:var(--zpu-muted,#637086);font-size:11px;line-height:1.6}
.zpf-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.zpf-timeline a{display:flex;flex-direction:column;gap:8px;min-width:0;padding:18px;border:1px solid var(--zpu-card-border,var(--zpf-line));border-radius:var(--zpu-card-radius,var(--zpu-radius,14px));background:var(--zpu-card-bg,#fff);color:var(--zpu-card-text,var(--zpf-ink));text-decoration:none}
.zpf-timeline a:hover{border-color:var(--zpu-card-hover-border,color-mix(in srgb,var(--zpf-accent) 45%,var(--zpf-line)));background:var(--zpu-card-hover-bg,var(--zpu-card-bg,#fff));box-shadow:0 5px 18px #1b26330c}
.zpf-timeline time{color:var(--zpu-muted,#58716e);font-size:12px}
.zpf-timeline strong{font-size:15px;line-height:1.5}
.zpf-timeline p{margin:0;color:var(--zpu-card-text,var(--zpf-muted));font-size:13px;line-height:1.6}
.zpf-transit-title{display:block;font-weight:800;line-height:1.55;overflow-wrap:normal;word-break:normal}
.zpf-title-phrase{unicode-bidi:plaintext}
.zpf-pair-context{color:var(--zpf-muted);font-weight:700;white-space:normal}
.zpf-title-body,.zpf-title-sign{display:inline;white-space:nowrap;unicode-bidi:isolate}
.zpf-astro-sym{display:inline-block;margin-inline:3px;font-family:"zpf-hamburg","HamburgSymbols","zodiacpress",sans-serif!important;font-style:normal;font-weight:400;font-variant:normal;font-variant-emoji:text!important;text-transform:none;line-height:1;color:var(--zpu-icon-color,#fa4db5)!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:-.04em}
.zpf-body-sym{font-size:1.12em}.zpf-sign-sym{font-size:1.08em;color:#fa4db5!important}
.zpf-symbol-image{display:inline-block;width:1.25em;height:1.25em;object-fit:contain;vertical-align:-.18em;margin-inline:4px;flex:0 0 auto}.zpf-body-image,.zpf-sign-image{width:1.28em;height:1.28em}.zpf-point-label{display:inline-block;margin-inline:3px;font:700 .82em/1 var(--zpu-font,Arial,sans-serif);color:var(--zpu-icon-color,#fa4db5);vertical-align:.08em}
.zpf-title-sign-name,.zpf-title-body{color:inherit}
.zpf-event-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.zpf-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 11px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}
.zpf-chip-strength{color:#fff;background:#6545be}
.zpf-strength-1{background:#d0c0fe;color:#24202d}.zpf-strength-2{background:#8e73d8}.zpf-strength-3{background:#6545be}.zpf-strength-4{background:#492d96}.zpf-strength-5{background:#382176}
.zpf-chip-positive{background:color-mix(in srgb,#36a269 18%,var(--zpf-surface));color:color-mix(in srgb,#36a269 72%,var(--zpf-ink))}.zpf-chip-mixed{background:color-mix(in srgb,#d29a26 18%,var(--zpf-surface));color:color-mix(in srgb,#d29a26 72%,var(--zpf-ink))}.zpf-chip-negative{background:color-mix(in srgb,#d35a5a 18%,var(--zpf-surface));color:color-mix(in srgb,#d35a5a 72%,var(--zpf-ink))}.zpf-chip-orb{background:color-mix(in srgb,var(--zpf-line) 48%,var(--zpf-surface));color:var(--zpf-ink)}
.zpf-timeline .zpf-event-chips{margin-top:0}
.zpf-timeline .zpf-chip{padding:4px 8px;font-size:11px}
.zpf-event,.zpf-houses,.zpf-more{margin:10px 0;padding:18px 20px;border:1px solid var(--zpu-card-border,var(--zpf-line));border-radius:var(--zpu-card-radius,var(--zpu-radius,14px));background:var(--zpu-card-bg,var(--zpf-surface));color:var(--zpu-card-text,var(--zpf-ink))}
.zpf-event-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.zpf-event-head>span:first-child{min-width:260px;flex:1 1 420px}
.zpf-event-head>.zpf-event-chips{flex:0 1 auto;justify-content:flex-end;margin-top:0}
.zpf-event-head strong{font-size:16px}
.zpf-event-head small{display:block;margin-top:4px;color:var(--zpf-muted);font-size:12px;font-weight:400}
.zpf-event-body{padding-top:14px}
.zpf-event-body>p{margin:0 0 14px;font-size:15px}
.zpf-app summary{position:relative;min-height:40px;padding-inline-end:30px;list-style:none;cursor:pointer;font-weight:600;align-content:center}
.zpf-app summary::-webkit-details-marker{display:none}
.zpf-app summary::after{content:"+";position:absolute;inset-inline-end:4px;top:5px;color:var(--zpf-muted);font-size:22px;line-height:1.2}
.zpf-app details[open]>summary::after{content:"−"}
.zpf-facts{margin-top:12px;padding-top:12px;border-top:1px solid var(--zpf-line)}
.zpf-facts summary{color:var(--zpf-muted);font-size:13px}
.zpf-facts dl{display:grid;grid-template-columns:minmax(130px,1fr) 3fr;gap:0;margin:14px 0;font-size:13px}
.zpf-facts dt,.zpf-facts dd{min-width:0;margin:0;padding:9px 0;border-bottom:1px solid #e9edf0;overflow-wrap:anywhere}
.zpf-facts dt{padding-inline-end:16px;color:var(--zpf-muted)}
.zpf-facts dd{font-weight:500}
.zpf-more>summary{color:var(--zpf-accent);font-size:14px}
.zpf-house-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-top:20px}
.zpf-house-grid h4{font-size:15px}
.zpf-house-grid ul{padding-inline-start:20px;margin:10px 0;color:var(--zpf-muted);font-size:12px}
.zpf-json{max-height:450px;overflow:auto;padding:20px;border-radius:8px;background:#17283f;color:#eaf1f5;font-size:12px;line-height:1.65;white-space:pre-wrap;word-break:break-word}

/* Tool-page navigation */
.zpf-lab-nav{display:flex;flex-wrap:wrap;gap:8px;max-width:1060px;margin:20px auto}
.zpf-lab-nav a{padding:8px 12px;border:1px solid var(--zpu-tab-border,var(--zpf-line));border-radius:20px;background:var(--zpu-tab-bg,var(--zpf-surface));color:var(--zpu-tab-text,var(--zpf-ink));text-decoration:none;font:500 13px/1.5 var(--zpu-font,system-ui,sans-serif)}
.zpf-lab-nav a:hover{border-color:var(--zpu-accent,#6d2b76);color:var(--zpu-accent,#6d2b76)}
.zpf-lab-nav a:focus-visible{outline:3px solid #af873d;outline-offset:2px}

/* My Data */
.zpf-manager{max-width:900px;padding:22px;border:1px solid var(--zpf-line);border-radius:var(--zpu-radius,14px);background:var(--zpf-surface);color:var(--zpf-ink)}
.zpf-manager-head h2{margin:0 0 6px}
.zpf-manager-head p{margin:0 0 18px;color:var(--zpf-muted)}
.zpf-manager .zpf-people-list{margin-bottom:14px}
.zpf-profile-editor{margin-top:20px;padding-top:20px;border-top:1px solid var(--zpf-line)}
.zpf-profile-editor[hidden]{display:none!important}
.zpf-profile-editor .zpf-person{max-width:100%}
.zpf-profile-list{display:grid;gap:15px;margin:20px 0}
.zpf-profile-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;border:1px solid var(--zpf-line);border-radius:12px;background:var(--zpf-surface);color:var(--zpf-ink)}
.zpf-profile-card h3{margin:0;font-size:19px}
.zpf-profile-actions{display:flex;gap:8px;flex-wrap:wrap}
.zpf-account-gate{max-width:900px;margin:24px auto;padding:18px 20px;border:1px solid var(--zpf-line);border-radius:12px;background:var(--zpf-surface);color:var(--zpf-ink)}
.zpf-manager-status:empty{display:none}

.zpf-app:focus,.zpf-results:focus{outline:none}
@keyframes zpf-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.zpf-app *{animation:none!important;scroll-behavior:auto!important}}
@media(max-width:850px){
  .zpf-form-head{padding-inline:16px}.zpf-form{padding:16px}.zpf-results{padding:22px 16px}
  .zpf-person-meta,.zpf-person-meta-3{grid-template-columns:1fr 1fr}.zpf-person-meta-3>.zpf-field:first-child{grid-column:1/-1}
  .zpf-categories{grid-template-columns:1fr 1fr}.zpf-timeline{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .zpf-app{margin:16px auto}.zpf-form-head{padding:0 4px 12px}.zpf-form-head h2{font-size:24px}.zpf-form{padding:14px;border-radius:14px}
  .zpf-person{padding:14px}.zpf-pair,.zpf-highlights,.zpf-categories,.zpf-house-grid{grid-template-columns:1fr}
  .zpf-person-meta,.zpf-person-meta-3,.zpf-row,.zpf-period-row{grid-template-columns:1fr}.zpf-person-meta-3>.zpf-field:first-child{grid-column:auto}
  .zpf-period-action{display:grid;grid-template-columns:1fr}.zpf-period-action .zpf-primary{min-width:0;width:100%}
  .zpf-result-head{align-items:flex-start;gap:12px}.zpf-result-head h2{font-size:24px}.zpf-result-head p{font-size:12px}
  .zpf-climate{min-width:105px;max-width:125px;padding:12px 8px}.zpf-climate strong{font-size:32px}.zpf-climate span{font-size:11px}
  .zpf-card{padding:20px}.zpf-event{padding:14px}.zpf-event-head{align-items:flex-start}.zpf-event-head .zpf-pill{padding:4px 7px;font-size:10px}
  .zpf-facts dl{grid-template-columns:1fr}.zpf-facts dt{padding-bottom:0;border-bottom:0;font-size:12px}.zpf-facts dd{padding-top:4px}
  .zpf-timeline{grid-template-columns:1fr}.zpf-profile-card{align-items:flex-start;flex-direction:column}
}

.zpf-card h3 .zpf-transit-title,.zpf-event-head strong .zpf-transit-title,.zpf-timeline strong .zpf-transit-title{display:inline;line-height:1.55}

/* Public 12-sign horoscopes */
.zpf-public-horoscope,.zpf-public-index{color-scheme:var(--zpu-color-scheme,light);font-family:var(--zpu-font,inherit);font-size:var(--zpu-body-size,16px);color:var(--zpu-text,#222);background:var(--zpu-page-bg,transparent);max-width:1180px;margin:0 auto;padding:24px 18px 48px;box-sizing:border-box}
.zpf-public-horoscope *,.zpf-public-index *{box-sizing:border-box}
.zpf-public-horoscope h1,.zpf-public-horoscope h2,.zpf-public-horoscope h3,.zpf-public-index h1{font-family:inherit;color:var(--zpu-text,#222);line-height:1.2}
.zpf-public-periods{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:0 0 22px}
.zpf-public-periods a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 18px;border:1px solid var(--zpu-tab-border,var(--zpu-border,#e5e5e7));border-radius:var(--zpu-tab-radius,999px);background:var(--zpu-tab-bg,var(--zpu-surface,#fff));color:var(--zpu-tab-text,var(--zpu-text,#222));text-decoration:none;font-weight:700}
.zpf-public-periods a:hover{border-color:var(--zpu-tab-hover-border,var(--zpu-accent,#6d2b76));color:var(--zpu-tab-hover-text,#fff);background:var(--zpu-tab-hover-bg,var(--zpu-accent,#6d2b76))}.zpf-public-periods a[aria-current="page"]{border-color:var(--zpu-tab-active-border,var(--zpu-accent,#6d2b76));color:var(--zpu-tab-active-text,var(--zpu-accent,#6d2b76));background:var(--zpu-tab-active-bg,#fff)}
.zpf-public-hero{background:var(--zpu-card-bg,var(--zpu-surface,#fff));border:1px solid var(--zpu-card-border,var(--zpu-border,#e5e5e7));border-radius:var(--zpu-card-radius,var(--zpu-radius,14px));padding:30px 34px;text-align:center;margin-bottom:34px;color:var(--zpu-card-text,var(--zpu-text,#222))}
.zpf-public-sign{display:inline-flex;align-items:center;gap:9px;font-size:22px;font-weight:800;color:var(--zpu-icon-color,var(--zpu-accent,#6d2b76));margin-bottom:14px}
.zpf-public-sign .zpf-astro-sym{font-family:"zpf-hamburg","HamburgSymbols"!important;font-size:calc(var(--zpu-icon-size,28px) * 1.75);font-weight:400;line-height:1;color:var(--zpu-icon-color,var(--zpu-accent,#6d2b76))!important}.zpf-sign-grid .zpf-astro-sym{font-family:"zpf-hamburg","HamburgSymbols"!important;font-size:var(--zpu-icon-size,28px);font-weight:400;line-height:1;color:var(--zpu-tab-icon-color,var(--zpu-icon-color,var(--zpu-accent,#6d2b76)))!important}.zpf-public-index-sign .zpf-astro-sym{font-family:"zpf-hamburg","HamburgSymbols"!important;font-size:var(--zpu-icon-size,28px);font-weight:400;line-height:1;color:var(--zpu-icon-color,var(--zpu-accent,#6d2b76))!important}
.zpf-public-hero h1{font-size:var(--zpu-title-size,32px);margin:0 0 12px;color:var(--zpu-title-color,var(--zpu-text,#222))}
.zpf-public-hero h2{font-size:var(--zpu-subtitle-size,24px);margin:0 0 16px;color:var(--zpu-accent,#6d2b76)}
.zpf-public-hero p{max-width:820px;margin:18px auto 8px;font-size:var(--zpu-body-size,16px);line-height:1.7;color:var(--zpu-muted,#666)}
.zpf-public-hero small{color:var(--zpu-muted,#666)}
.zpf-public-tone{display:inline-flex;padding:7px 13px;border-radius:999px;font-weight:800;font-size:14px}
.zpf-tone-supportive{--zpf-tone:#4ba97b;--zpf-tone-bg:color-mix(in srgb,#4ba97b 16%,var(--zpu-card-bg,var(--zpu-surface,#fff)))}.zpf-tone-mixed{--zpf-tone:#c59625;--zpf-tone-bg:color-mix(in srgb,#c59625 16%,var(--zpu-card-bg,var(--zpu-surface,#fff)))}.zpf-tone-challenging{--zpf-tone:#d26756;--zpf-tone-bg:color-mix(in srgb,#d26756 16%,var(--zpu-card-bg,var(--zpu-surface,#fff)))}
.zpf-public-tone,.zpf-public-focus-card strong{color:var(--zpf-tone);background:var(--zpf-tone-bg)}
.zpf-public-horoscope>h3{font-size:var(--zpu-subtitle-size,24px);margin:38px 0 18px}
.zpf-public-overview{background:var(--zpu-card-bg,var(--zpu-surface,#fff));border:1px solid var(--zpu-card-border,var(--zpu-border,#e5e5e7));border-radius:var(--zpu-card-radius,var(--zpu-radius,14px));color:var(--zpu-card-text,var(--zpu-text,#222));padding:26px 30px}
.zpf-public-overview p{font-size:var(--zpu-body-size,16px);line-height:1.8;margin:0}.zpf-public-overview p+p{margin-top:18px}
.zpf-public-focus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.zpf-public-focus-card{border:1px solid var(--zpu-card-border,var(--zpu-border,#e5e5e7));border-radius:var(--zpu-card-radius,var(--zpu-radius,14px));padding:22px;background:var(--zpu-card-bg,var(--zpu-surface,#fff));color:var(--zpu-card-text,var(--zpu-text,#222))}
.zpf-public-focus-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.zpf-public-focus-head{display:flex;align-items:center;gap:10px;min-width:0;margin:0}.zpf-public-focus-head>span{display:block;font-size:var(--zpu-card-title-size,19px);font-weight:800}.zpf-public-focus-card strong{display:inline-flex;padding:5px 10px;border-radius:999px;font-size:13px;white-space:nowrap}.zpf-public-focus-card p{margin:14px 0 0;line-height:1.7;color:var(--zpu-card-text,var(--zpu-muted,#666));font-size:var(--zpu-body-size,16px)}.zpf-public-focus-card .zpf-category-icon{width:var(--zpu-icon-size,30px);height:var(--zpu-icon-size,30px);flex:0 0 var(--zpu-icon-size,30px);color:var(--zpu-icon-color,var(--zpu-accent,#6d2b76))}
.zpf-public-astrology{margin:38px 0 22px;border:1px solid var(--zpu-card-border,var(--zpu-border,#e5e5e7));border-radius:var(--zpu-card-radius,var(--zpu-radius,14px));background:var(--zpu-card-bg,var(--zpu-surface,#fff));color:var(--zpu-card-text,var(--zpu-text,#222));overflow:hidden}
.zpf-public-astrology>summary{cursor:pointer;padding:19px 22px;font-size:19px;font-weight:800;color:var(--zpu-text,#222);list-style-position:inside}
.zpf-public-signals{padding:0 22px 22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.zpf-public-signals article{background:var(--zpu-panel,#faf8fb);border-radius:calc(var(--zpu-radius,14px) - 3px);padding:18px}
.zpf-public-signals h4{margin:0 0 10px;display:flex;align-items:center;gap:8px;font-size:17px;flex-wrap:wrap}.zpf-public-signals h4 .zpf-astro-sym{font-family:"zpf-hamburg","HamburgSymbols"!important;font-size:1.25em;font-weight:400}.zpf-public-signals p{margin:0;line-height:1.7;color:var(--zpu-muted,#666)}
.zpf-public-note{margin:26px 0;color:var(--zpu-muted,#666);font-size:14px;line-height:1.6}.zpf-public-cta{text-align:center;margin:24px 0 34px}.zpf-public-cta .zpf-primary{display:inline-flex;text-decoration:none;padding:11px 22px;min-height:46px;align-items:center}
.zpf-sign-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:26px 0}
.zpf-sign-grid a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:8px 10px;border:1px solid var(--zpu-tab-border,var(--zpu-border,#e5e5e7));border-radius:var(--zpu-tab-radius,999px);background:var(--zpu-tab-bg,var(--zpu-surface,#fff));color:var(--zpu-tab-text,var(--zpu-text,#222));text-decoration:none;font-weight:700;white-space:nowrap}
.zpf-sign-grid a:hover{border-color:var(--zpu-tab-hover-border,var(--zpu-accent,#6d2b76));background:var(--zpu-tab-hover-bg,#f4f1f5);color:var(--zpu-tab-hover-text,var(--zpu-accent,#6d2b76))}.zpf-sign-grid a[aria-current="page"]{border-color:var(--zpu-tab-active-border,var(--zpu-accent,#6d2b76));background:var(--zpu-tab-active-bg,#fff);color:var(--zpu-tab-active-text,var(--zpu-accent,#6d2b76))}
.zpf-public-index>header{text-align:center;max-width:760px;margin:0 auto 26px}.zpf-public-index>header h1{font-size:var(--zpu-title-size,32px);color:var(--zpu-title-color,var(--zpu-text,#222));margin-bottom:12px}.zpf-public-index>header p{color:var(--zpu-muted,#666);font-size:17px;line-height:1.6}
.zpf-public-index-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}
.zpf-public-index-cards>a{display:block;border:1px solid var(--zpu-card-border,var(--zpu-border,#e5e5e7));border-radius:var(--zpu-card-radius,var(--zpu-radius,14px));background:var(--zpu-card-bg,var(--zpu-surface,#fff));padding:22px;color:var(--zpu-card-text,var(--zpu-text,#222));text-decoration:none;min-height:180px}.zpf-public-index-cards>a:hover{border-color:var(--zpu-card-hover-border,var(--zpu-accent,#6d2b76));background:var(--zpu-card-hover-bg,color-mix(in srgb,var(--zpu-card-bg,var(--zpu-surface,#fff)) 94%,var(--zpu-accent,#6d2b76)));transform:translateY(-1px)}
.zpf-public-index-sign{display:flex;align-items:center;gap:8px;color:var(--zpu-icon-color,var(--zpu-accent,#6d2b76));font-weight:800;font-size:var(--zpu-card-title-size,19px);margin-bottom:14px}.zpf-public-index-cards strong{font-size:var(--zpu-card-title-size,19px);display:block;line-height:1.35}.zpf-public-index-cards p{color:var(--zpu-card-text,var(--zpu-muted,#666));line-height:1.5;margin:10px 0 0}
[dir="rtl"] .zpf-public-overview,[dir="rtl"] .zpf-public-focus-card,[dir="rtl"] .zpf-public-signals article,[dir="rtl"] .zpf-public-index-cards>a{text-align:right}
@media(max-width:900px){.zpf-sign-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.zpf-public-index-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.zpf-public-horoscope,.zpf-public-index{padding:16px 10px 36px}.zpf-public-hero{padding:24px 18px}.zpf-public-focus,.zpf-public-signals,.zpf-public-index-cards{grid-template-columns:1fr}.zpf-sign-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.zpf-public-overview{padding:20px}.zpf-public-overview p,.zpf-public-hero p{font-size:16px}.zpf-public-horoscope>h3{font-size:24px}.zpf-public-periods a{flex:1}}

/* Relationship forecast titles: participant relationship first, transit trigger second. No inline planet/sign glyphs in forecast prose. */
.zpf-relationship-primary{display:block;font-weight:800}
.zpf-transit-trigger{display:block;margin-top:5px;color:var(--zpf-muted);font-size:.76em;font-weight:600;line-height:1.45}
/* Forecast/public icon box system. Legacy Birth Chart and Compatibility glyphs are intentionally excluded. */
.zpf-icon-box{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:var(--zpu-icon-padding,0);border-width:var(--zpu-icon-border-width,0);border-style:var(--zpu-icon-border-style,solid);border-color:var(--zpu-icon-border-color,transparent);border-radius:var(--zpu-icon-border-radius,8px);background:var(--zpu-icon-bg,transparent);color:var(--zpf-icon-specific,var(--zpu-icon-color,var(--zpu-accent,#6d2b76)));line-height:1;box-sizing:border-box}
.zpf-icon-box .zpf-astro-sym,.zpf-icon-box .zpf-point-label{color:currentColor!important;margin:0!important}
.zpf-icon-box .zpf-astro-sym{font-size:var(--zpu-icon-size,28px)}
.zpf-icon-box .zpf-symbol-image,.zpf-icon-box .zpf-category-icon{display:block;width:var(--zpu-icon-size,28px);height:var(--zpu-icon-size,28px);margin:0;flex:0 0 var(--zpu-icon-size,28px);object-fit:contain}
.zpf-icon-box .zpf-category-mask{background-color:currentColor;color:currentColor}
.zpf-public-sign .zpf-icon-box .zpf-astro-sym{font-size:calc(var(--zpu-icon-size,28px) * 1.35)}
.zpf-public-focus-head>.zpf-icon-box{margin:0}


/* rc.16 dark/light contrast correction for semantic forecast chips. */
.zpf-chip-positive{color:color-mix(in srgb,#36a269 55%,var(--zpf-ink) 45%)}
.zpf-chip-mixed{color:color-mix(in srgb,#d29a26 55%,var(--zpf-ink) 45%)}
.zpf-chip-negative{color:color-mix(in srgb,#d35a5a 55%,var(--zpf-ink) 45%)}
.zpf-supportive{color:color-mix(in srgb,#4b9f73 55%,var(--zpf-ink) 45%)}
.zpf-challenging{color:color-mix(in srgb,#d46b5b 55%,var(--zpf-ink) 45%)}
.zpf-mixed{color:color-mix(in srgb,#9588c7 55%,var(--zpf-ink) 45%)}

/* Uploaded Forecast/public-horoscope art can inherit a preset/service color via mask without affecting legacy ZodiacPress glyphs. */
.zpf-symbol-art{display:inline-flex;align-items:center;justify-content:center;width:var(--zpu-icon-size,28px);height:var(--zpu-icon-size,28px);color:inherit}
.zpf-symbol-image-original{display:block;width:100%;height:100%;object-fit:contain}
.zpf-symbol-image-mask{display:none;width:100%;height:100%;background:currentColor;-webkit-mask-image:var(--zpf-symbol-art);mask-image:var(--zpf-symbol-art);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.zpf-icon-box.zpf-has-specific-color .zpf-symbol-image-original{display:none}
.zpf-icon-box.zpf-has-specific-color .zpf-symbol-image-mask{display:block}
/* Render CSS adds the same two switches when general/service icon-color override is active. */
