:root{--procurement-ink:#131714;--procurement-muted:#5c645f;--procurement-subtle:#858c87;--procurement-line:#e3e6e1;--procurement-line-strong:#cdd3cd;--procurement-green:#0d6b4a;--procurement-green-hover:#0a5639;--procurement-green-deep:#0b3d2b;--procurement-sage:#cfe6da;--procurement-on-brand-muted:#b9dcc9;--procurement-surface:#f4f5f2;--procurement-paper:#ffffff;--procurement-inset:#f8f9f7;--procurement-tint:#e9f3ee;--procurement-brass:#a8732a;--procurement-amber:#c26a08;--procurement-amber-bg:#fdf0dc;--procurement-amber-ink:#8a4a05;--procurement-amber-border:#edc995;--procurement-info:#2f5fa7;--procurement-info-bg:#e7eef9;--procurement-info-border:#bccde9;--procurement-success:#17704a;--procurement-success-bg:#e1f2e8;--procurement-danger:#b42318;--procurement-danger-border:#eab4ad;--procurement-danger-bg:#fdecea;--procurement-radius:14px;--procurement-radius-lg:20px;--procurement-shadow-sm:0 1px 2px rgb(16 24 20/0.05);--procurement-shadow:0 1px 2px rgb(16 24 20/0.04),0 12px 32px -16px rgb(16 24 20/0.16);--procurement-shadow-lg:0 2px 6px rgb(16 24 20/0.04),0 24px 56px -20px rgb(16 24 20/0.24);--procurement-focus:0 0 0 3px color-mix(in srgb,var(--procurement-green) 22%,transparent);--procurement-title-size:clamp(24px,2.2vw,30px);--procurement-title-weight:700;--procurement-font-sans:var(--font-geist-sans),"PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;--procurement-font-numeric:var(--font-geist-mono),ui-monospace,"SF Mono",Menlo,monospace;--chart-series-soft:#a9d3bd;--chart-grid:#e8ebe7;--chart-axis-text:#7a817c;--chart-status-delivered:#1f7f4c;--chart-status-returned:#5a6db0;--chart-status-held:#c97a0a;--chart-status-unavailable:#b8383b}.procurement-shell{--procurement-surface:#f4f5f2}.supplier-shell{--chart-series-soft:#b4bde6;--chart-grid:#e6e9f1;--chart-axis-text:#6a7181;--procurement-ink:#12161f;--procurement-muted:#5a6272;--procurement-subtle:#868d9b;--procurement-line:#e1e4ec;--procurement-line-strong:#c9cfdc;--procurement-green:#3446a8;--procurement-green-hover:#2a3988;--procurement-green-deep:#1d2766;--procurement-sage:#d6dcf5;--procurement-on-brand-muted:#c9d1f3;--procurement-surface:#f3f4f8;--procurement-paper:#ffffff;--procurement-inset:#f7f8fb;--procurement-tint:#eaedfa;--procurement-info:#0f6a7e;--procurement-info-bg:#e1f2f5;--procurement-info-border:#b3dbe3;--procurement-shadow-sm:0 1px 2px rgb(18 22 40/0.05);--procurement-shadow:0 1px 2px rgb(18 22 40/0.04),0 12px 32px -16px rgb(18 22 40/0.18)}.procurement-shell,.supplier-shell,:root{--chart-series:var(--procurement-green);--bg-interactive:var(--procurement-green);--fg-interactive:var(--procurement-green);--fg-interactive-hover:var(--procurement-green-hover);--border-interactive:var(--procurement-green);accent-color:var(--procurement-green)}body{font-family:var(--procurement-font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:is(.procurement-shell,.supplier-shell) :is(h1,h2){letter-spacing:-.02em}:focus-visible{outline:2px solid var(--procurement-green);outline-offset:2px}.tabular,.ui-table td,td{font-variant-numeric:tabular-nums}::-moz-selection{background:var(--procurement-sage);color:var(--procurement-ink)}::selection{background:var(--procurement-sage);color:var(--procurement-ink)}:root{--motion-fast:150ms;--motion-enter:420ms;--motion-ease:cubic-bezier(0.2,0.8,0.2,1);--motion-stagger:60ms}b .motion-count>span:not(.sr-only),strong .motion-count>span:not(.sr-only){color:inherit;font:inherit;letter-spacing:inherit;text-transform:none}.motion-count[data-counting]{font-variant-numeric:tabular-nums}.motion-skeleton{border-radius:var(--procurement-radius);background:var(--procurement-inset)}@media (prefers-reduced-motion:no-preference){.motion-count[data-pending]{opacity:0;animation:motion-reveal 0s 1.5s forwards}.motion-count-changed{display:inline-block;border-radius:6px;animation:motion-flash 1.2s ease-out}.motion-stagger>*,.procurement-finance-summary>*,.procurement-finance-trends>*,.procurement-overview-grid>*,.procurement-product-list>*{animation:motion-rise var(--motion-enter) var(--motion-ease) both}:is(.procurement-overview-grid,.procurement-finance-summary,.procurement-finance-trends,.procurement-product-list,.motion-stagger)>:nth-child(2){animation-delay:calc(var(--motion-stagger) * 1)}:is(.procurement-overview-grid,.procurement-finance-summary,.procurement-finance-trends,.procurement-product-list,.motion-stagger)>:nth-child(3){animation-delay:calc(var(--motion-stagger) * 2)}:is(.procurement-overview-grid,.procurement-finance-summary,.procurement-finance-trends,.procurement-product-list,.motion-stagger)>:nth-child(4){animation-delay:calc(var(--motion-stagger) * 3)}:is(.procurement-overview-grid,.procurement-finance-summary,.procurement-finance-trends,.procurement-product-list,.motion-stagger)>:nth-child(5){animation-delay:calc(var(--motion-stagger) * 4)}:is(.procurement-overview-grid,.procurement-finance-summary,.procurement-finance-trends,.procurement-product-list,.motion-stagger)>:nth-child(n+6){animation-delay:calc(var(--motion-stagger) * 5)}.procurement-spend-chart>div>i{transform-origin:bottom;animation:motion-grow .56s var(--motion-ease) both}.procurement-spend-chart>div>i:nth-child(2){animation-delay:50ms}.procurement-spend-chart>div>i:nth-child(3){animation-delay:.1s}.procurement-spend-chart>div>i:nth-child(4){animation-delay:.15s}.procurement-spend-chart>div>i:nth-child(5){animation-delay:.2s}.procurement-spend-chart>div>i:nth-child(6){animation-delay:.25s}.procurement-primary-button,.procurement-secondary-button{transition:transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.procurement-primary-button:active:not(:disabled),.procurement-secondary-button:active:not(:disabled){transform:translateY(1px) scale(.985)}@media (hover:hover) and (pointer:fine){.motion-lift,.procurement-finance-summary>a,.procurement-spend-card,.procurement-stat-card.actionable{transition:transform .22s var(--motion-ease),box-shadow .22s var(--motion-ease),border-color .22s ease}.motion-lift:hover,.procurement-finance-summary>a:hover,.procurement-spend-card:hover,.procurement-stat-card.actionable:hover{transform:translateY(-2px);box-shadow:var(--procurement-shadow)}}.motion-skeleton,.procurement-notification-loading span{background:linear-gradient(100deg,var(--procurement-inset) 30%,var(--procurement-paper) 50%,var(--procurement-inset) 70%);background-size:220% 100%;animation:motion-shimmer 1.4s linear infinite}.procurement-cart-icon.is-bumped{animation:motion-cart-bump .52s var(--motion-ease)}.procurement-cart-icon.is-bumped b{animation:motion-pop .32s var(--motion-ease) .12s both}.procurement-bottom-nav a.active svg{animation:motion-confirm .32s var(--motion-ease)}.motion-flash{animation:motion-flash 1.4s ease-out}.motion-check path{stroke-dasharray:1;stroke-dashoffset:1;animation:motion-draw .42s var(--motion-ease) 80ms forwards}.motion-check{animation:motion-pop .28s var(--motion-ease) both}.motion-marker{animation:motion-drop .42s var(--motion-ease) both}.motion-bar>*{transition:width .6s var(--motion-ease)}}@keyframes motion-reveal{to{opacity:1}}@keyframes motion-rise{0%{opacity:0;transform:translateY(8px)}}@keyframes motion-grow{0%{transform:scaleY(0)}}@keyframes motion-draw{to{stroke-dashoffset:0}}@keyframes motion-pop{0%{opacity:0;transform:scale(.4)}}@keyframes motion-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@keyframes motion-flash{0%{background-color:color-mix(in srgb,var(--procurement-sage) 85%,transparent)}to{background-color:transparent}}@keyframes motion-drop{0%{opacity:0;transform:translateY(-14px) scale(.8)}}@keyframes motion-cart-bump{0%{transform:none}30%{transform:translateY(-3px) rotate(-8deg) scale(1.08)}60%{transform:translateY(0) rotate(5deg)}to{transform:none}}@keyframes motion-confirm{0%{transform:scale(.94)}60%{transform:scale(1.03)}to{transform:none}}.fly-card{z-index:1000;overflow:hidden;box-shadow:0 24px 48px -14px rgb(16 22 20/.45);pointer-events:none;transform-origin:center;animation:none;transition:none}.cart-added-note{position:fixed;z-index:1001;padding:8px 14px;border-radius:12px;background:var(--procurement-green-deep);color:var(--procurement-paper);font-size:15px;font-weight:700;box-shadow:var(--procurement-shadow-lg);pointer-events:none}.is-awaiting{box-shadow:0 0 0 4px color-mix(in srgb,var(--procurement-green) 35%,transparent);transition:box-shadow .2s ease}@media (prefers-reduced-motion:no-preference){.cart-added-note{animation:cart-note 1.6s ease-out forwards}@keyframes cart-note{0%{opacity:0;transform:translateY(-6px) scale(.9)}12%{opacity:1;transform:translateY(0) scale(1)}75%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.is-awaiting{animation:cart-glow .6s ease-in-out infinite alternate}@keyframes cart-glow{to{box-shadow:0 0 0 8px color-mix(in srgb,var(--procurement-green) 18%,transparent)}}.is-catching{animation:cart-catch .6s cubic-bezier(.3,1.6,.5,1)}@keyframes cart-catch{0%{transform:scale(1)}35%{transform:scale(1.25) rotate(-8deg)}65%{transform:scale(.95) rotate(4deg)}to{transform:none}}}.chart{display:grid;gap:10px;min-width:0}.chart-plot{position:relative;min-width:0;border-radius:10px;outline:none}.chart-plot:focus-visible{box-shadow:0 0 0 2px var(--procurement-paper),0 0 0 4px var(--chart-series)}.chart-plot svg{display:block;overflow:visible;touch-action:pan-y}.chart-grid{stroke:var(--chart-grid);stroke-width:1;shape-rendering:crispEdges}.chart-tick{fill:var(--chart-axis-text);font-size:11px;font-variant-numeric:tabular-nums}.chart-end-label{fill:var(--procurement-ink);font-size:12px;font-weight:650}.chart-end-label.is-hidden{visibility:hidden}.chart-line{fill:none;stroke:var(--chart-series);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chart-area{opacity:.1}.chart-area,.chart-dot{fill:var(--chart-series)}.chart-dot{stroke:var(--procurement-paper);stroke-width:2}.chart-crosshair{stroke:var(--chart-axis-text);stroke-width:1;shape-rendering:crispEdges}.chart-bar{fill:var(--chart-series);transition:opacity .15s ease}.chart-hit{fill:transparent}.chart-column.is-dimmed .chart-bar{opacity:.35}.chart-tooltip{position:absolute;z-index:2;display:grid;gap:1px;min-width:96px;padding:7px 10px;border:1px solid var(--procurement-line);border-radius:10px;background:var(--procurement-paper);box-shadow:var(--procurement-shadow);transform:translateX(-50%);pointer-events:none;white-space:nowrap}.chart-tooltip strong{color:var(--procurement-ink);font-size:14px;font-variant-numeric:tabular-nums}.chart-table summary,.chart-tooltip span{color:var(--procurement-muted);font-size:12px}.chart-table summary{width:-moz-fit-content;width:fit-content;cursor:pointer}.chart-table table{width:100%;margin-top:8px;border-collapse:collapse;font-size:13px}.chart-table td,.chart-table th{padding:6px 4px;border-bottom:1px solid var(--procurement-line);text-align:left}.chart-table td{text-align:right;font-variant-numeric:tabular-nums}.chart-table thead th{color:var(--procurement-muted);font-size:12px;font-weight:600}.chart-table thead th:last-child{text-align:right}.chart-rank{display:grid;gap:14px;margin:0;padding:0;list-style:none}.chart-rank li{display:grid;gap:6px;min-width:0}.chart-rank-name{display:flex;min-width:0;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:14px}.chart-rank-name small{color:var(--procurement-muted);font-size:12px}.chart-rank-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.chart-rank-track{height:10px;overflow:hidden;border-radius:999px;background:var(--procurement-inset)}.chart-rank-track i{display:block;height:100%;min-width:4px;border-radius:999px;background:var(--chart-series)}.chart-rank-row b{min-width:2.5ch;color:var(--procurement-ink);font-size:13px;font-variant-numeric:tabular-nums;text-align:right}@media (prefers-reduced-motion:no-preference){.chart-line{stroke-dasharray:1;stroke-dashoffset:1;animation:motion-draw 1s var(--motion-ease) .12s forwards}.chart-area,.chart-end-label{animation:chart-fade .5s ease .7s both}.chart-bar{transform-box:fill-box;transform-origin:bottom;animation:motion-grow .56s var(--motion-ease) both}.chart-rank-track i{transform-origin:left;animation:chart-grow-x .64s var(--motion-ease) both}.chart-tooltip{animation:chart-fade .12s ease both}}@keyframes chart-fade{0%{opacity:0}}@keyframes chart-grow-x{0%{transform:scaleX(0)}}