.progress-energy-track { position:relative;overflow:hidden; }
.progress-energy-canvas { position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none; }
.campaign-progress-unified { position:relative;z-index:1;display:grid;grid-template-columns:repeat(var(--act-count),minmax(0,1fr));gap:3px;font-family:var(--display); }
.campaign-progress-part { min-width:0; }
.campaign-progress-label { margin-top:9px;padding:0 5px;color:#91acbf;font-size:12px;line-height:1.45;text-align:center;overflow-wrap:anywhere; }
.campaign-progress-unified .campaign-progress-track { height:24px; }
.campaign-progress-value { position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;line-height:1;text-shadow:0 1px 3px #000,0 0 4px #000;pointer-events:none; }
.campaign-progress-part.active .campaign-progress-label { color:var(--cyan); }
.campaign-progress-part.complete .campaign-progress-label { color:var(--gold); }
.campaign-progress-part.complete .campaign-progress-track { border-color:rgba(232,195,106,.45); }
.campaign-progress-part.complete .campaign-progress-track>i { background:linear-gradient(90deg,#a57526,var(--gold));box-shadow:0 0 15px rgba(232,195,106,.5); }
@media(max-width:560px) { .campaign-progress-label { padding:0 2px;font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .progress-energy-canvas { display:none; } }
