.pgoal { display:flex; align-items:flex-start; justify-content:flex-start; color:var(--goal-text); font-family:var(--goal-font); }
.pgoal-card { width:var(--goal-width); display:flex; align-items:center; gap:var(--goal-icon-gap); padding:16px 18px; border-radius:var(--goal-radius); background:var(--goal-background); box-shadow:var(--goal-shadow); }
.pgoal-icon { width:1.35em; flex:0 0 auto; text-align:center; color:var(--goal-accent); font-size:38px; line-height:1; filter:drop-shadow(var(--goal-glow)); }
.pgoal-content { min-width:0; width:100%; display:flex; flex-direction:column; gap:var(--goal-content-gap); }
.pgoal-header { min-height:29px; display:flex; justify-content:space-between; align-items:baseline; gap:var(--goal-label-value-gap); white-space:nowrap; }
.pgoal-label { min-width:0; overflow:hidden; text-overflow:ellipsis; color:var(--goal-label-text); font-size:var(--goal-label-size,22px); font-weight:var(--goal-label-weight,800); letter-spacing:.04em; background:none; box-shadow:none; }
.pgoal-values { color:var(--goal-value-text); font-size:var(--goal-value-size,18px); font-weight:var(--goal-value-weight,750); font-variant-numeric:tabular-nums; background:none; box-shadow:none; }
.pgoal-value-slot { display:flex; flex:1 0 auto; min-width:0; max-width:100%; }
.pgoal-label + .pgoal-value-slot { max-width:calc(100% - var(--goal-label-value-gap)); }
.pgoal-value-slot .pgoal-values { min-width:0; margin-left:auto; overflow:clip; overflow-clip-margin:10px; text-overflow:ellipsis; text-align:right; }
/* A zero-basis spacer only takes free space, so the inset cannot push into the label or widen text-only goals. */
.pgoal-value-slot::after { content:""; flex:1 1 0px; max-width:var(--goal-value-inset); }
.pgoal-track { width:100%; height:var(--goal-thickness); padding:var(--goal-stroke-width); overflow:hidden; border:var(--goal-stroke-width) solid var(--goal-stroke); border-radius:999px; background:var(--goal-track); box-shadow:var(--goal-glow); }
.pgoal-fill { width:var(--goal-progress); height:100%; border-radius:inherit; background:var(--goal-gradient); background-size:200% 100%; box-shadow:var(--goal-glow); transition:width .6s ease,height .6s ease; }
.pgoal-preset-neon .pgoal-card { background:transparent; box-shadow:none; }
.pgoal-preset-neon .pgoal-label,.pgoal-preset-neon .pgoal-values { background:none; box-shadow:none; filter:none; text-shadow:0 0 2px var(--goal-glow-color),0 0 6px var(--goal-glow-color),0 0 10px var(--goal-glow-color); }
.pgoal-preset-clean .pgoal-card { border:var(--goal-stroke-width) solid var(--goal-stroke); }
.pgoal-preset-soft .pgoal-card { background:color-mix(in srgb,var(--goal-background) 90%,var(--goal-accent) 10%); }
.pgoal-preset-glass .pgoal-card { border:1px solid color-mix(in srgb,var(--goal-text) 24%,transparent); backdrop-filter:blur(14px); }
.pgoal-preset-pixel .pgoal-card,.pgoal-preset-pixel .pgoal-track,.pgoal-preset-pixel .pgoal-fill { border-radius:0; }
.pgoal-preset-pixel .pgoal-card { border:3px solid var(--goal-accent); box-shadow:7px 7px 0 #000; }
.pgoal-layout-vertical .pgoal-card { width:max(170px,calc(var(--goal-thickness) + 90px)); min-height:430px; flex-direction:column; }
.pgoal-layout-vertical .pgoal-icon { width:auto; }
.pgoal-layout-vertical .pgoal-content { flex:1; align-items:center; }
.pgoal-layout-vertical .pgoal-header { width:100%; flex-direction:column; align-items:center; white-space:normal; text-align:center; }
.pgoal-layout-vertical .pgoal-track { width:var(--goal-thickness); height:290px; padding:var(--goal-stroke-width); display:flex; align-items:flex-end; }
.pgoal-layout-vertical .pgoal-fill { width:100%; height:var(--goal-progress); background:var(--goal-gradient-vertical); background-size:100% 200%; }
.pgoal-layout-ring .pgoal-card { width:280px; padding:8px; flex-direction:column; border:0; background:transparent; box-shadow:none; }
.pgoal-ring { width:230px; height:230px; position:relative; display:grid; place-items:center; filter:drop-shadow(var(--goal-glow)); }
.pgoal-ring svg { width:100%; height:100%; overflow:visible; transform:rotate(115deg); }
.pgoal-ring circle { fill:none; stroke-width:var(--goal-thickness); stroke-linecap:round; transform-origin:center; transition:stroke-dasharray .6s ease; }
.pgoal-ring-track { stroke:var(--goal-track); }
.pgoal-ring-center { position:absolute; inset:42px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--goal-text); border-radius:50%; background:var(--goal-background); box-shadow:var(--goal-inner-shadow); font-variant-numeric:tabular-nums; }
.pgoal-ring-center strong { color:var(--goal-value-text); font-size:var(--goal-value-size,34px); font-weight:var(--goal-value-weight,500); line-height:1.15; }
.pgoal-ring-center small { color:var(--goal-value-text); font-size:calc(var(--goal-value-size,34px) * 18 / 34); font-weight:var(--goal-value-weight,650); }
.pgoal-ring-divider { width:64%; height:1px; margin:6px 0; background:color-mix(in srgb,var(--goal-text) 35%,transparent); }
.pgoal-ring-label { margin-top:-8px; color:var(--goal-label-text); font-size:var(--goal-label-size,18px); font-weight:var(--goal-label-weight,700); text-align:center; background:none; box-shadow:none; filter:none; text-shadow:0 0 2px var(--goal-glow-color),0 0 6px var(--goal-glow-color),0 0 10px var(--goal-glow-color); }
.pgoal-layout-minimal .pgoal-card { width:auto; min-width:260px; padding:7px; border:0; background:transparent; box-shadow:none; }
.pgoal-animated .pgoal-fill { animation:pgoal-gradient-flow var(--goal-speed) linear infinite; }
.pgoal-animated .pgoal-ring-fill { animation:pgoal-ring-glow calc(var(--goal-speed) / 2) ease-in-out infinite alternate; }
@keyframes pgoal-gradient-flow { to { background-position:200% 0; } }
@keyframes pgoal-ring-glow { to { filter:brightness(1.25); } }
@media (prefers-reduced-motion:reduce) { .pgoal-animated .pgoal-fill,.pgoal-animated .pgoal-ring-fill { animation:none; } }
