.xph{--xph-amber:#ffb000;--xph-orange:#ff8a00;--xph-violet:#6c3bf4;--xph-ink:#171514;--xph-muted:#9a948c;--xph-ease:cubic-bezier(0.2,0.8,0.2,1);width:100%;max-width:440px;margin-inline:auto;padding:22px 22px 18px;border-radius:var(--radius-2xl,24px);background:var(--canvas,#fff);border:1px solid var(--line-grey,rgba(23,21,20,.08));box-shadow:var(--shadow-card,0 20px 50px -28px rgba(23,21,20,.28));font-family:var(--font-sans,"Manrope",system-ui,sans-serif)}.xph-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.xph-title{display:block;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--xph-ink)}.xph-sub{display:block;font-size:12px;font-weight:500;color:var(--xph-muted)}.xph-total{text-align:right}.xph-total b{display:block;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--xph-orange);font-variant-numeric:tabular-nums}.xph-total span{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--xph-muted)}.xph-svg{display:block;width:100%;height:auto}.xph-base{stroke:rgba(23,21,20,.12);stroke-width:1}.xph-bar{fill:var(--xph-amber);transform-box:fill-box;transform-origin:bottom}.xph-line{fill:none;stroke:var(--xph-violet);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.xph-dot{fill:var(--xph-violet);stroke:#fff;stroke-width:1.5}.xph-day{font-size:9px;font-weight:600;fill:var(--xph-muted)}.xph-legend{display:flex;gap:18px;margin-top:8px}.xph-leg{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:600;color:var(--xph-ink)}.xph-leg--bar i{width:10px;height:10px;border-radius:3px;background:var(--xph-amber)}.xph-leg--line i{width:14px;height:3px;border-radius:999px;background:var(--xph-violet)}@media (prefers-reduced-motion:no-preference){.xph-bar{transform:scaleY(0)}.xph[data-in-view=true] .xph-bar{animation:xph-grow .6s var(--xph-ease) forwards}.xph-line{stroke-dasharray:1;stroke-dashoffset:1}.xph[data-in-view=true] .xph-line{transition:stroke-dashoffset 1s var(--xph-ease) .8s;stroke-dashoffset:0}.xph-dot{opacity:0}.xph[data-in-view=true] .xph-dot{animation:xph-fade .3s var(--xph-ease) forwards}}@keyframes xph-grow{to{transform:scaleY(1)}}@keyframes xph-fade{to{opacity:1}}