.procurement-panel{margin-top:24px;padding:24px;border-radius:18px;background:#fff;border:1px solid #dce7ed;box-shadow:0 10px 30px #163b5010;color:#19334a}.procurement-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:22px}.procurement-heading .eyebrow{color:#078985;font-size:.7rem;font-weight:800;letter-spacing:.14em;margin:0 0 5px}.procurement-heading h2{margin:0;font-size:1.55rem}.procurement-heading p:not(.eyebrow){margin:4px 0 0;color:#586c7f}.procurement-sync{font-size:.8rem;color:#586c7f}.procurement-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:22px}.procurement-chart-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:14px;min-width:0}.procurement-chart{min-width:0;padding:18px;border-radius:15px;background:#f5f9fb;border:1px solid #e4edf1}.procurement-chart h3{font-size:1rem;margin:0 0 16px}.procurement-bars{height:240px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;align-items:end;border-bottom:1px solid #a9bac7}.procurement-bars.annual{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.procurement-bar-item{height:100%;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.procurement-bar-value{font-size:.68rem;color:#28465d;white-space:nowrap;font-weight:650}.procurement-bar-track{height:170px;width:100%;display:flex;align-items:flex-end;justify-content:center}.procurement-bar{width:min(100%,30px);height:var(--bar-height);min-height:0;background:linear-gradient(180deg,#12a994,#087b7b);border-radius:5px 5px 0 0}.annual .procurement-bar{width:min(100%,65px);background:linear-gradient(180deg,#3784ce,#185b94)}.procurement-bar.is-missing{height:4px;width:16px;background:#b7c8d1;border-radius:3px}.procurement-bar-label{font-size:.7rem;font-weight:700;padding:9px 0}.procurement-totals{display:grid;gap:14px}.procurement-totals section{border-radius:15px;background:#0e6268;color:#fff;padding:20px;display:flex;flex-direction:column;justify-content:center;min-width:0}.procurement-totals section:nth-child(2){background:#265b8e}.procurement-totals h3{font-size:.92rem;font-weight:500;margin:0 0 12px;color:#e7f4f4}.procurement-totals strong{font-size:clamp(1.35rem,2vw,2rem);font-weight:700;line-height:1.2;overflow-wrap:anywhere}.procurement-totals p{font-size:.76rem;color:#d9ebee;margin:12px 0 0}.procurement-details{margin-top:18px}.procurement-details summary{cursor:pointer;color:#086d75;font-weight:650}.procurement-note{font-size:.82rem;color:#5a6d7d;margin:16px 0 0}.procurement-warning{border:1px solid #dfac3b;background:#fff7df;color:#694a09;padding:10px 14px;border-radius:9px}.procurement-panel button:focus-visible,.procurement-details summary:focus-visible{outline:3px solid #1a70bb;outline-offset:3px}@media(max-width:1100px){.procurement-layout{grid-template-columns:1fr}.procurement-totals{grid-template-columns:1fr 1fr}}@media(max-width:720px){.procurement-panel{padding:16px}.procurement-heading{display:block}.procurement-sync{display:block;margin-top:9px}.procurement-chart-grid,.procurement-totals{grid-template-columns:1fr}.procurement-chart{overflow-x:auto}.procurement-bars.monthly{min-width:560px}.procurement-bars{height:220px}}
.procurement-chart{overflow-x:auto}.procurement-chart:focus-visible{outline:3px solid #1a70bb;outline-offset:2px}.procurement-bars.monthly{min-width:840px;gap:8px}
.procurement-layout{grid-template-columns:minmax(0,1fr);gap:18px}.procurement-lower{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:18px;min-width:0}.procurement-totals section{min-height:125px}.procurement-animate .procurement-bar:not(.is-missing){transform-origin:center bottom;animation:procurement-rise .95s cubic-bezier(.2,.75,.25,1) both}@keyframes procurement-rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}@media(max-width:900px){.procurement-lower{grid-template-columns:1fr}.procurement-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.procurement-totals{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.procurement-animate .procurement-bar:not(.is-missing){animation:none}}
.procurement-panel{margin-top:12px}.procurement-bars{position:relative}.procurement-bars::before{content:"";position:absolute;left:0;right:0;bottom:29px;height:170px;background:repeating-linear-gradient(to top,#d6e2e9 0 1px,transparent 1px 42.5px);pointer-events:none;z-index:0}.procurement-bar-item{position:relative;z-index:1}.procurement-bar-value{margin-bottom:10px}.procurement-bar-item:hover .procurement-bar:not(.is-missing){filter:brightness(1.08);box-shadow:0 0 0 2px #ffffffaa}.procurement-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.procurement-refresh{border:1px solid #0b7778;border-radius:9px;background:#fff;color:#0b7778;padding:7px 15px;font:inherit;font-weight:600;font-size:.85rem;line-height:1.2;cursor:pointer}.procurement-refresh:hover{background:#e6f4f3}.procurement-refresh:disabled{opacity:.65;cursor:wait}.procurement-footer{display:flex;align-items:center;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;margin-top:16px}.procurement-note,.procurement-reference{font-size:.82rem;color:#5a6d7d;margin:0}@media(max-width:720px){.procurement-actions{align-items:flex-start;margin-top:12px}}
.procurement-bar{cursor:help}.procurement-bar:focus-visible{outline:3px solid #144b72;outline-offset:3px}.procurement-tooltip{position:fixed;z-index:99999;pointer-events:none;min-width:118px;padding:9px 12px;border-radius:11px;background:#123e51;color:#fff;box-shadow:0 12px 28px #10364740;font-size:.78rem;line-height:1.35;white-space:nowrap}.procurement-tooltip[hidden]{display:none}.procurement-tooltip span,.procurement-tooltip strong{display:block}.procurement-tooltip span{color:#c1e8e8;font-size:.7rem;font-weight:650;letter-spacing:.04em}.procurement-tooltip strong{margin-top:2px;font-size:.88rem;font-weight:700}.procurement-loading-skeleton{min-height:285px;position:relative;padding:4px 8px 14px}.procurement-spinner{display:block;width:40px;height:40px;margin:14px auto 32px;border:4px solid #d4e9e9;border-top-color:#087f83;border-radius:50%;animation:procurement-spin .7s linear infinite}.procurement-skeleton-title{height:23px;width:40%;border-radius:8px;background:#e4edf0;margin-bottom:32px}.procurement-skeleton-bars{height:150px;display:flex;align-items:flex-end;justify-content:space-around;gap:12px;border-bottom:1px solid #c6d7df}.procurement-skeleton-bars i{display:block;width:9%;height:55%;border-radius:5px 5px 0 0;background:#deebed;animation:procurement-pulse 1.1s ease-in-out infinite alternate}.procurement-skeleton-bars i:nth-child(2n){height:82%;animation-delay:.15s}.procurement-skeleton-bars i:nth-child(3n){height:37%;animation-delay:.3s}.procurement-layout.is-loading{position:relative}.procurement-layout.is-loading::before{content:"";position:absolute;inset:0;background:#ffffffa8;z-index:5;border-radius:15px}.procurement-layout.is-loading::after{content:"";position:absolute;z-index:6;top:65px;left:calc(50% - 20px);width:40px;height:40px;border:4px solid #d4e9e9;border-top-color:#087f83;border-radius:50%;animation:procurement-spin .7s linear infinite}@keyframes procurement-spin{to{transform:rotate(360deg)}}@keyframes procurement-pulse{to{opacity:.4}}@media(prefers-reduced-motion:reduce){.procurement-spinner,.procurement-layout.is-loading::after,.procurement-skeleton-bars i{animation:none}}
.indicator-intro{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;margin:0 0 14px}.indicator-intro>.muted{margin:0}.indicator-refresh-area{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.indicator-refresh-area button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border:1px solid #0a7779;border-radius:10px;background:#fff;color:#086c70;font-weight:700;box-shadow:0 3px 10px #173e4e0b}.indicator-refresh-area button:hover{background:#e8f6f4}.indicator-refresh-area button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.indicator-refresh-area button.is-loading svg{animation:procurement-spin .8s linear infinite}.indicator-refresh-area [role=status]{font-size:.76rem;color:#a13a31}.indicator-refresh-area [role=status]:empty{display:none}@media(max-width:720px){.indicator-intro{align-items:flex-start;flex-direction:column}.indicator-refresh-area{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.indicator-refresh-area button.is-loading svg{animation:none}}
