/* Part of the web app: Eternal Portfolio chart, forecast tabs, Heavenly Return view switch and the 5% Multipliers Club. Loads after serif.css. */
.card.hero.pf .tabs.pf-tabs{margin:6px 0 0;flex-wrap:nowrap}
.card.hero.pf .tabs.pf-tabs::before{display:none !important}
.card.hero.pf .tabs.pf-tabs::after{display:none !important}
.card.hero.pf .tabs.pf-tabs button.on{box-shadow:inset 0 -2px 0 var(--x-gold,var(--gold)) !important;color:var(--gold-hi,var(--gold))}
.pf-frow{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.pf-frow .tabs.pf-tabs{margin-top:0;border-bottom:none}
.pf-flbl{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--gold-2)}
#hero-chart{margin:6px -2px 2px;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.pf-chart{display:block;overflow:visible;cursor:crosshair}
.pf-grid{stroke:var(--hair-2,rgba(0,0,0,.08));stroke-width:1}
.pf-ax{font:600 10px var(--sans);fill:var(--ink-3)}
.pf-base{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:2 4;opacity:.7}
.pf-line{fill:none;stroke:var(--gold-2);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.pf-fut{fill:none;stroke:var(--gold-2);stroke-width:2.2;stroke-dasharray:5 5;stroke-linecap:round}
.pf-today{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3}
.pf-dot{fill:var(--gold-2);stroke:var(--canvas,#fff);stroke-width:2;filter:drop-shadow(0 0 6px var(--gold-2))}
.pf-cross{stroke:var(--ink-2);stroke-width:1}
.pf-hot{fill:var(--canvas,#fff);stroke:var(--gold-2);stroke-width:2.5}
.card.hero.pf .bal .cents{font-size:.5em;opacity:.8}
.card.hero.pf .delta .pct{color:var(--ink-2);font-weight:500}
.card.hero.pf .who .nw,.card.hero.pf .nw{white-space:nowrap}
/* 5% Multipliers Club */
.pf-club{position:relative;overflow:hidden;padding:16px 18px}
.pf-club.on{background:linear-gradient(135deg,var(--gold-soft),transparent 70%),var(--card,transparent);border-color:var(--gold-2)}
.pf-club-hd{display:flex;align-items:center;gap:12px}
.pf-club-hd .crown-mk{width:34px;height:20px;stroke:var(--gold-2);flex:none}
.pf-club-t{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--ink);line-height:1.15}
.pf-club-n{margin-left:auto;font-family:var(--serif);font-size:28px;font-weight:600;color:var(--gold)}
.pf-club-bar{position:relative;height:10px;border-radius:6px;background:var(--hair-2,rgba(0,0,0,.08));margin:14px 0 6px}
.pf-club-bar div{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--gold),var(--gold-2))}
.pf-club-bar i{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink-2)}
.pf-club-mk{position:relative;height:16px;font-size:11px;font-weight:600;color:var(--ink-3)}
.pf-club-mk span{position:absolute;top:0;white-space:nowrap}
.pf-club-mk .m0{left:0}.pf-club-mk .m10{left:66.67%;transform:translateX(-50%)}.pf-club-mk .m15{right:0}
.pf-club-s{margin:10px 0 0;color:var(--ink-2);text-wrap:pretty}
/* order only in the phone layout, where the other cards are ordered too; on desktop the club stays after the KPIs instead of sinking below the footer */
@media(max-width:743px),(max-width:820px) and (max-height:599px){.col-main > :is(.pf-club,.ig-goal){order:2}}
.card.hero.pf .delta{flex-wrap:wrap;column-gap:8px;row-gap:2px}
.card.hero.pf .delta .up,.card.hero.pf .delta .pct{white-space:nowrap}
/* the Goals "Set Goal & Income" ghost button read too faint on the glass card; give it a visible outline and a light fill */
#edit-goal{border:1.5px solid rgba(22,35,63,.30);background:rgba(255,255,255,.55)}
html[data-theme="dark"] #edit-goal{border-color:rgba(234,229,214,.45);background:rgba(13,22,48,.55)}
/* the dashboard footer now sits after the rail as a full-width row; keep the same alignment and wrap it had inside the main column */
body.plus:not(.classic) .content>footer{text-wrap:pretty}
@media(min-width:1121px){body.plus:not(.classic) .content>footer{text-align:left}}
/* the page footer's cream pool (app-foot ::before, top -30px) painted over the last line of the dashboard footer and washed it out; lift the dashboard footer above it */
.content>footer{position:relative;z-index:1}
@media (max-width:480px){.evt{gap:8px;padding-left:16px;padding-right:16px}}
@media (max-width:480px){.sv-card .sb-tiles .kpi .lbl{min-height:2lh}}
.sv-rail-act .btn{display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2}
.who .who-dot{display:none}.who .who-t{display:block}
@media (max-width:600px){footer .f-dot{display:none}footer .f-t{display:block}}
/* phones drop the tiny sparkline so each fund name sits on one line */
@media (max-width:480px){.pos-row{grid-template-columns:minmax(0,1fr) auto!important}.pos-row .pos-spark{display:none!important}}
/* Eternal Portfolio / Heavenly Return view switch */
.card.hero.pf .tabs.pf-view{margin:0 0 10px;flex-wrap:nowrap}
.card.hero.pf .tabs.pf-view::before,.card.hero.pf .tabs.pf-view::after{display:none !important}
.card.hero.pf .tabs.pf-view button{white-space:nowrap}
.card.hero.pf .tabs.pf-view button.on{box-shadow:inset 0 -2px 0 var(--x-gold,var(--gold)) !important;color:var(--gold-hi,var(--gold))}
.card.hero.pf.hr #pf-hist,.card.hero.pf.hr .pf-frow,.card.hero.pf.hr .pf-only,.card.hero.pf:not(.hr) .hr-only{display:none}
