/* Scoped workbench components; existing demonstration assets are independent. */
.wb { --wb-ink:#1f453a; --wb-muted:#52645e; --wb-line:#b4c9bb; --wb-paper:#f3f8f2; border:1px solid var(--wb-line);border-radius:16px;padding:clamp(1rem,3vw,1.7rem);margin:1.5rem 0;background:var(--wb-paper);color:#213b32; }
.wb *, .wb *::before, .wb *::after { box-sizing:border-box; }
.wb fieldset { border:0;padding:0;margin:0 0 1.4rem;min-width:0; }
.wb legend { font-size:1.1rem;font-weight:750;padding:0;margin-bottom:.8rem; }
.wb-controls { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem; }
.wb-control { min-width:0; }
.wb-control label { display:block;font-size:.94rem;font-weight:700;line-height:1.4;margin-bottom:.35rem; }
.wb-control input { display:block;width:100%;min-height:46px;border:1px solid #708f7e;border-radius:6px;padding:.55rem .7rem;background:white;color:#213b32;font:inherit;font-size:1rem; }
.wb-control small { display:block;color:#475e53;font-size:.84rem;line-height:1.45;margin-top:.3rem; }
.wb-control input[aria-invalid="true"] { border:2px solid #9b251e;background:#fff7f5; }
.wb button { border:1px solid #496c59;border-radius:6px;min-height:44px;padding:.55rem .8rem;background:white;color:#244d39;font:inherit;font-size:.9rem;font-weight:650;cursor:pointer; }
.wb button[type="submit"] { color:white;background:#244d39; }
.wb button:disabled { opacity:.55;cursor:default; }
.wb :is(button,input,a):focus-visible { outline:3px solid #a2601a;outline-offset:3px; }
.wb-actions { display:flex;flex-wrap:wrap;gap:.6rem; }
.wb-presets { margin-top:.8rem; }
.wb-hint { color:#475e53;font-size:.9rem;line-height:1.5; }
.wb-error { border-left:4px solid #9b251e;background:#fff3ef;padding:.7rem .9rem;color:#7b211b; }
.wb-result { border:1px solid var(--wb-line);border-radius:8px;background:white;padding:1rem;line-height:1.55;margin:1rem 0;overflow-wrap:anywhere; }
.wb-results { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1rem 0; }
.wb-stat { background:white;border:1px solid var(--wb-line);border-radius:8px;padding:.85rem;min-width:0; }
.wb-stat dt { font-size:.85rem;line-height:1.4;color:#475e53; }
.wb-stat dd { font-weight:750;font-size:clamp(1.1rem,2.8vw,1.5rem);line-height:1.5;margin:.4rem 0 0;overflow-wrap:anywhere; }
.wb-stat small { display:block;font-size:.78rem;font-weight:400;line-height:1.4;color:#475e53; }
.wb-table { overflow-x:auto;max-width:100%;border:1px solid var(--wb-line);border-radius:8px;background:white;margin:1rem 0; }
.wb-table table { width:100%;border-collapse:collapse;font-size:.9rem; }
.wb-table caption { text-align:left;font-weight:700;padding:.8rem; }
.wb-table th,.wb-table td { text-align:left;vertical-align:top;padding:.65rem .8rem;border-bottom:1px solid #dbe5dc; }
.wb-table th { background:#e6efe4; }
.wb-table tr:last-child td { border-bottom:0; }
.wb-chart { background:white;border:1px solid var(--wb-line);border-radius:8px;margin:1rem 0; }
.wb-chart svg { width:100%;height:auto;display:block; }
.wb-chart text { font-family:system-ui,sans-serif;fill:#213b32;font-size:16px; }
.wb-chart .wb-chart-small { font-size:13px; }
.wb-chart .wb-chart-bar { fill:#426f58; }
.wb-chart .wb-chart-alt { fill:#a25c18; }
.wb-chart .wb-chart-axis { stroke:#9db4a4;stroke-width:1; }
.wb-note { font-size:.9rem;border-left:3px solid #b48336;padding-left:.9rem;line-height:1.6; }
.wb [hidden] { display:none!important; }
@media (max-width:620px) { .wb-controls,.wb-results { grid-template-columns:1fr; } .wb { padding:1rem; } .wb-actions button { flex:1 1 145px; } .wb-table th,.wb-table td { padding:.55rem; } }
@media print { .wb form { display:none; } .wb { background:white;break-inside:avoid; } }
