/* Laboratórios do Dicionário • HUB da Matemática • sem dependências. */
.math-visual.hub-lab-host{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:1rem;font-weight:400;white-space:normal;background:#fff;color:#17334b;text-align:left;line-height:1.55;min-width:0;max-width:100%;overflow-wrap:normal;border-radius:16px;padding:clamp(.75rem,2vw,1.25rem)}
.hub-lab,.hub-lab *{box-sizing:border-box}
.hub-lab{--lab-ink:#17334b;--lab-blue:#086eb6;--lab-teal:#057761;--lab-orange:#b84707;--lab-pink:#ae275f;color:var(--lab-ink);font-family:inherit;max-width:100%;min-width:0;line-height:1.55;text-align:left}
.hub-lab h3{font-size:clamp(1.2rem,3vw,1.5rem);line-height:1.3;margin:0 0 .6rem;color:var(--lab-ink)}
.hub-lab p{margin:.65rem 0}
.hub-lab .lab-intro{font-size:1rem}
.hub-lab .lab-hint,.hub-lab .lab-note{font-size:.9rem;color:#405c6e}
.hub-lab .lab-controls{display:grid;gap:.8rem;border:1px solid #bfd8e8;border-radius:16px;padding:1rem;margin:1rem 0;background:#f2f9fe;min-width:0}
.hub-lab .lab-controls legend{font-size:.9rem;font-weight:750;padding:0 .4rem;color:#1c587a}
.hub-lab .lab-control{min-width:0}
.hub-lab .lab-control label{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.95rem;font-weight:650;margin-bottom:.25rem}
.hub-lab output{font-variant-numeric:tabular-nums;display:inline-block;min-width:2.5rem;text-align:center;background:#fff;border:1px solid #bdd8e8;border-radius:8px;padding:.1rem .45rem;color:#153b57}
.hub-lab input[type=range]{display:block;width:100%;min-height:44px;margin:0;accent-color:var(--lab-blue);cursor:pointer;touch-action:pan-y}
.hub-lab select,.hub-lab button{font:inherit;min-height:44px;border:1px solid #9fbfd4;border-radius:10px;padding:.55rem .8rem;color:#173f5c;background:#fff;max-width:100%;cursor:pointer}
.hub-lab select{width:100%}
.hub-lab button:hover{background:#e0f2fc;border-color:#2877a8}
.hub-lab :focus-visible{outline:3px solid #0758a6;outline-offset:4px}
.hub-lab fieldset:disabled{opacity:.7}
.hub-lab .lab-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:.8rem 0}
.hub-lab .lab-stage{padding:1rem;background:#fff;border:1px solid #cee2eb;border-radius:16px;min-width:0;max-width:100%}
.hub-lab .lab-read{font-size:clamp(1.1rem,3vw,1.4rem);font-weight:750;color:#125478;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.hub-lab .lab-status{border-left:4px solid var(--lab-teal);background:#eaf8f3;border-radius:0 10px 10px 0;padding:.75rem .9rem;font-size:.96rem}
.hub-lab .lab-grid{display:grid;gap:1rem;align-items:start;min-width:0}
.hub-lab .lab-figure{display:block;width:100%;height:auto;max-width:420px;margin:.5rem auto;overflow:visible}
.hub-lab .lab-figure text{font-family:inherit;font-size:12px;fill:#294e66}
.hub-lab .lab-axis{stroke:#668396;stroke-width:1.5;fill:none}
.hub-lab .lab-gridline{stroke:#dce9ef;stroke-width:1;fill:none}
.hub-lab .lab-main-line{stroke:var(--lab-blue);stroke-width:3;fill:none}
.hub-lab .lab-other-line{stroke:var(--lab-orange);stroke-width:3;fill:none}
.hub-lab .lab-point{fill:var(--lab-orange);stroke:#fff;stroke-width:2}
.hub-lab .lab-point-start{fill:var(--lab-blue);stroke:#fff;stroke-width:2}
.hub-lab .lab-fill{fill:#d7eefb;stroke:var(--lab-blue);stroke-width:2}
.hub-lab .lab-fill-reflection{fill:#fde5ce;fill-opacity:.75;stroke:var(--lab-orange);stroke-width:2;stroke-dasharray:5 3}
.hub-lab .lab-mirror{stroke:var(--lab-pink);stroke-width:2.5;stroke-dasharray:7 5}
.hub-lab table{width:100%;border-collapse:collapse;margin:.5rem 0;font-size:.9rem;table-layout:fixed}
.hub-lab caption{text-align:left;font-weight:700;padding:.35rem 0;color:#294e66}
.hub-lab th,.hub-lab td{border-bottom:1px solid #d7e6ed;padding:.5rem .3rem;text-align:center;overflow-wrap:anywhere;vertical-align:middle}
.hub-lab th{background:#f0f7fb;font-weight:700}
.hub-lab .lab-places{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;margin:1rem 0}
.hub-lab .lab-place{background:#eaf6fd;border:1px solid #b8dced;border-radius:10px;padding:.65rem .2rem;text-align:center;font-size:.8rem;overflow-wrap:anywhere}
.hub-lab .lab-place:nth-child(2){background:#eef8eb;border-color:#c6e1bd}
.hub-lab .lab-place:nth-child(3){background:#fff3df;border-color:#efd4a6}
.hub-lab .lab-place:nth-child(4){background:#fbeaf2;border-color:#eac8d9}
.hub-lab .lab-place strong{display:block;font-size:1.7rem;line-height:1.2;color:#204d68}
.hub-lab .lab-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:.6rem}
.hub-lab .lab-group{padding:.6rem;border:1px solid #b9dccc;background:#f0faf5;border-radius:10px;min-width:0}
.hub-lab .lab-group h4{font-size:.85rem;margin:0 0 .3rem;color:#255b4e}
.hub-lab .lab-dots{display:flex;gap:5px;flex-wrap:wrap;min-height:16px;margin:.35rem 0}
.hub-lab .lab-dot{display:inline-block;width:12px;height:12px;background:#08765c;border-radius:50%;flex:none}
.hub-lab .lab-rest{margin:.75rem 0;padding:.6rem .8rem;border:1px dashed #b68e3f;border-radius:10px;background:#fff8e9}
.hub-lab .lab-rest .lab-dot{background:#a75a00}
.hub-lab .lab-fraction-row{margin:1rem 0}
.hub-lab .lab-fraction-row strong{display:block;font-size:.95rem;margin-bottom:.35rem}
.hub-lab .lab-bar{height:42px;display:grid;border:1px solid #587d94;border-radius:4px;overflow:hidden;background:#f0f6fa;max-width:100%}
.hub-lab .lab-bar span{min-width:0;border-right:1px solid #7495a9}
.hub-lab .lab-bar span:last-child{border-right:0}
.hub-lab .lab-bar .lab-on{background:#0878b9}
.hub-lab .lab-fraction-row:nth-child(2) .lab-on{background:#087a63}
.hub-lab .lab-equality{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.6rem;margin:.8rem 0;font-size:1.3rem;font-weight:750}
.hub-lab .lab-member{padding:.9rem .45rem;border:2px solid #b7d6e7;border-radius:14px;background:#eff8fe;text-align:center;overflow-wrap:anywhere}
.hub-lab .lab-member:last-child{border-color:#b7dccc;background:#eff9f2}
.hub-lab .lab-steps{padding-left:1.4rem;line-height:1.7}
.hub-lab .lab-product{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;min-height:2.5rem}
.hub-lab .lab-factor{border-radius:8px;background:#e7f4fc;border:1px solid #b9dced;padding:.3rem .55rem;font-weight:700}
.hub-lab .lab-balls{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.hub-lab .lab-ball{display:grid;place-items:center;width:42px;height:42px;border:2px solid #6d8ca0;background:#edf3f7;color:#294f66;border-radius:50%;font-size:.85rem;font-weight:700;flex:none}
.hub-lab .lab-ball-favorable{background:#d6f2e6;color:#095f47;border-color:#137958}
.hub-lab .lab-key{display:flex;gap:1rem;flex-wrap:wrap;font-size:.88rem;color:#35576c}
.hub-lab .lab-question{background:#fff7e7;border:1px solid #efd7a8;border-radius:12px;padding:.85rem 1rem;margin-top:1rem}
.hub-lab .lab-question p{margin:.25rem 0}
.hub-lab .lab-question details{margin-top:.6rem}
.hub-lab summary{cursor:pointer;font-weight:700;min-height:44px;display:list-item;padding:.5rem 0;color:#654905}
.hub-lab .lab-credit{font-size:.8rem;color:#476578;border-top:1px solid #dfebf1;margin-top:1rem;padding-top:.7rem}
.hub-lab .lab-no-script{font-size:.9rem;background:#fff2d5;padding:.75rem;border-radius:10px}
@media(min-width:680px){.hub-lab .lab-grid{grid-template-columns:1fr 1fr}.hub-lab .lab-controls.lab-controls-wide{grid-template-columns:1fr 1fr}.hub-lab .lab-controls .lab-actions{grid-column:1/-1}}
@media(max-width:390px){.hub-lab .lab-stage,.hub-lab .lab-controls{padding:.65rem}.hub-lab th,.hub-lab td{font-size:.8rem;padding:.4rem .2rem}.hub-lab .lab-place{font-size:.72rem}.hub-lab .lab-place strong{font-size:1.45rem}}
@media(prefers-reduced-motion:reduce){.hub-lab *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.hub-lab .lab-controls,.hub-lab .lab-hint,.hub-lab .lab-actions,.hub-lab .lab-no-script{display:none}.hub-lab .lab-stage,.hub-lab .lab-question{break-inside:avoid}.hub-lab{color:#000}.hub-lab details:not([open])>p{display:block}}
