.bs-pareto { --bs-blue:#1a6faf; --bs-navy:#0d3b6e; --bs-amber:#f5a623; --bs-border:#e4eaf1; box-sizing:border-box; width:100%; min-width:0; margin:24px 0; padding:24px; border:1px solid var(--bs-border); border-radius:12px; background:#fff; color:#0d3b6e; font-family:'DM Sans',sans-serif; font-size:14px; line-height:1.5; text-align:left; }
.bs-pareto *, .bs-pareto *::before, .bs-pareto *::after { box-sizing:border-box; }
.bs-pareto [hidden], img[data-bs-pareto][hidden] { display:none !important; }
.bs-pareto p { margin:0; }
.bs-pareto__header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.bs-pareto .bs-pareto__eyebrow { color:#1a6faf; font-size:10px; font-weight:700; letter-spacing:.12em; margin:0 0 7px; }
.bs-pareto .bs-pareto__title { font-family:'DM Serif Display',Georgia,serif; color:#0d3b6e; font-size:clamp(22px,2.2vw,28px); line-height:1.2; font-weight:400; margin:0 0 8px; }
.bs-pareto__subtitle { color:#555; font-size:12px; }
.bs-pareto__toggle { display:flex; align-items:center; flex-shrink:0; gap:9px; cursor:pointer; font-weight:600; font-size:13px; }
.bs-pareto__toggle input { appearance:none; display:block; position:relative; width:38px; height:22px; border:1px solid #8b98a7; border-radius:20px; background:#dce3eb; margin:0; cursor:pointer; transition:background 180ms; }
.bs-pareto__toggle input::after { content:''; position:absolute; width:16px; height:16px; top:2px; left:2px; background:#fff; border-radius:50%; transition:transform 180ms; }
.bs-pareto__toggle input:checked { background:#1a6faf; border-color:#1a6faf; }
.bs-pareto__toggle input:checked::after { transform:translateX(16px); }
.bs-pareto__toolbar { display:flex; align-items:flex-end; gap:12px; }
.bs-pareto__search { flex:1; min-width:0; }
.bs-pareto__scale { flex:0 0 150px; }
.bs-pareto__field-label { display:block; color:#555; font-size:11px; margin-bottom:5px; }
.bs-pareto__toolbar input, .bs-pareto__toolbar select { width:100%; min-width:0; height:40px; padding:0 12px; color:#0d3b6e; font:inherit; font-size:13px; background:#f7f9fc; border:1px solid #e4eaf1; border-radius:6px; }
.bs-pareto :is(input, select, button, a, summary):focus-visible { outline:2px solid #1a6faf; outline-offset:3px; }
.bs-pareto .bs-pareto__description { font-size:12px; color:#555; margin:16px 0 8px; max-width:80ch; }
.bs-pareto__median-summary { display:flex; flex-wrap:wrap; gap:8px 24px; margin:12px 0 7px; color:#0d3b6e; font-size:12px; font-weight:600; }
.bs-pareto__favorable-note { margin:0 0 14px; font-size:12px; }
.bs-pareto__favorable-note strong { color:#157347; font-weight:600; }
.bs-pareto__favorable-note span { display:block; color:#555; font-size:11px; margin-top:3px; }
.bs-pareto__favorable-area { fill:#edf8f1; pointer-events:none; }
.bs-pareto__median-line { stroke:#617d70; stroke-width:1.3; stroke-dasharray:2 5; stroke-linecap:round; pointer-events:none; }
.bs-pareto__median-label { fill:#466153; font:10px 'DM Sans',sans-serif; paint-order:stroke; stroke:#fff; stroke-width:3px; stroke-linejoin:round; pointer-events:none; }
.bs-pareto.is-pareto-off .bs-pareto__median-layer { display:none; }
.bs-pareto__favorable-list { margin-top:12px; color:#157347; font-size:12px; }
.bs-pareto__favorable-list summary { cursor:pointer; }
.bs-pareto__favorable-list p { margin-top:8px; font-size:11px; color:#555; }
.bs-pareto__plot { width:100%; min-width:0; position:relative; }
.bs-pareto__tooltip { position:absolute; z-index:2; width:max-content; max-width:min(270px,calc(100% - 8px)); padding:10px 12px; color:#0d3b6e; background:#fff; border:1px solid #e4eaf1; border-radius:6px; box-shadow:0 3px 12px #0d3b6e14; pointer-events:none; overflow-wrap:anywhere; }
.bs-pareto__tooltip strong { display:block; font-size:12px; line-height:1.4; }
.bs-pareto__tooltip span { display:block; font-size:11px; color:#555; margin-top:4px; }
.bs-pareto__plot svg { display:block; width:100%; height:auto; overflow:visible; touch-action:pan-y; }
.bs-pareto__grid { stroke:#e4eaf1; stroke-width:1; stroke-dasharray:3 4; }
.bs-pareto__tick { fill:#555; font:11px 'DM Sans',sans-serif; }
.bs-pareto__axis-caption { fill:#0d3b6e; font:11px 'DM Sans',sans-serif; }
.bs-pareto__line { stroke:#1a6faf; stroke-width:2; stroke-dasharray:3 5; stroke-linecap:round; opacity:.9; pointer-events:none; }
.bs-pareto__tracer { fill:#0d3b6e; stroke:#fff; stroke-width:1.5; pointer-events:none; }
.bs-pareto__crosshair { stroke:#0d3b6e; stroke-width:1; stroke-dasharray:3 4; opacity:.5; pointer-events:none; }
.bs-pareto__point { cursor:pointer; outline:none; transition:opacity 180ms; }
.bs-pareto__hit { fill:transparent; stroke:none; }
.bs-pareto__dot { fill:#378add; stroke:#fff; stroke-width:1.2; opacity:.75; transition:fill 160ms,opacity 160ms,r 160ms; }
.bs-pareto__ring { fill:none; stroke:#0d3b6e; stroke-width:1.5; opacity:0; transition:opacity 150ms; pointer-events:none; }
.bs-pareto__point.is-frontier.is-revealed .bs-pareto__dot { fill:#f5a623; stroke:#80500b; opacity:1; r:6; }
.bs-pareto:not(.is-pareto-off) .bs-pareto__point.is-favorable .bs-pareto__dot { fill:#157347; stroke:#fff; opacity:1; r:5.5; }
.bs-pareto:not(.is-pareto-off) .bs-pareto__point.is-favorable.is-frontier.is-revealed .bs-pareto__dot { stroke:#f5a623; stroke-width:2.5; r:6; }
.bs-pareto__tooltip .bs-pareto__favorable-text { color:#157347; }
.bs-pareto__point.is-reference .bs-pareto__dot { fill:#fff; stroke:#555; stroke-width:1.5; opacity:1; }
.bs-pareto__point.is-active .bs-pareto__ring, .bs-pareto__point:focus-visible .bs-pareto__ring { opacity:1; }
.bs-pareto__point.is-active .bs-pareto__dot { opacity:1; }
.bs-pareto .bs-pareto__point.is-deemphasized { opacity:.25; }
.bs-pareto .bs-pareto__point.is-muted { opacity:.14; }
.bs-pareto .bs-pareto__point.is-active, .bs-pareto .bs-pareto__point:focus-visible { opacity:1; }
.bs-pareto.is-pareto-off :is(.bs-pareto__line, .bs-pareto__tracer) { opacity:0; }
.bs-pareto.is-pareto-off .bs-pareto__point.is-frontier .bs-pareto__dot { fill:#378add; stroke:#fff; r:4.5; }
.bs-pareto.is-pareto-off .bs-pareto__key--frontier { opacity:.4; }
.bs-pareto__details { min-height:92px; padding:14px 16px; margin-top:8px; border-left:3px solid #f5a623; background:#f7f9fc; overflow-wrap:anywhere; }
.bs-pareto__details strong { display:block; color:#0d3b6e; font-size:14px; font-weight:600; }
.bs-pareto__details span { display:block; margin-top:3px; font-size:12px; color:#555; }
.bs-pareto__details small { display:block; margin-top:4px; font-size:11px; color:#555; }
.bs-pareto__legend { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:17px; font-size:11px; color:#555; }
.bs-pareto__key { display:inline-flex; align-items:center; gap:7px; }
.bs-pareto__key::before { content:''; width:8px; height:8px; border-radius:50%; background:#378add; }
.bs-pareto__key--frontier::before { background:#f5a623; border:1px solid #80500b; }
.bs-pareto__key--favorable::before { background:#157347; }
.bs-pareto__key--reference::before { background:#fff; border:1px solid #555; border-radius:0; transform:rotate(45deg); }
.bs-pareto__footer { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:18px; padding-top:14px; border-top:1px solid #e4eaf1; }
.bs-pareto__footer a, .bs-pareto__footer button { color:#1a6faf; font:inherit; font-size:12px; text-decoration:underline; text-underline-offset:3px; background:none; padding:0; border:0; cursor:pointer; }
.bs-pareto .bs-pareto__note { color:#555; font-size:11px; margin-top:14px; }
.bs-pareto__results { padding:12px 0 0; }
.bs-pareto__result-status { font-size:12px; color:#555; }
.bs-pareto__result-buttons { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }
.bs-pareto__result-buttons button { font:inherit; font-size:12px; padding:6px 10px; color:#0d3b6e; background:#f7f9fc; border:1px solid #e4eaf1; border-radius:4px; cursor:pointer; }
.bs-pareto__result-buttons button:hover { border-color:#1a6faf; }
.bs-pareto__data { margin-top:14px; overflow-x:auto; }
.bs-pareto__data summary { font-size:12px; color:#1a6faf; cursor:pointer; }
.bs-pareto__data table { width:100%; border-collapse:collapse; font-size:11px; margin:10px 0 0; }
.bs-pareto__data th, .bs-pareto__data td { padding:8px; border-bottom:1px solid #e4eaf1; text-align:left; }
@media (max-width:600px) { .bs-pareto { padding:16px 12px; } .bs-pareto__header { align-items:flex-start; flex-direction:column; gap:14px; } .bs-pareto__scale { flex-basis:116px; } .bs-pareto__toolbar { gap:8px; } .bs-pareto__toolbar input, .bs-pareto__toolbar select { font-size:16px; padding:0 8px; } .bs-pareto__details { min-height:110px; padding:12px; } }
@media (prefers-reduced-motion:reduce) { .bs-pareto *, .bs-pareto *::before, .bs-pareto *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
