.rex{--rex-ink:#18323c;--rex-teal:#0a716d;--rex-line:#d5e1e2;--rex-muted:#53676e;--rex-warm:#a15b27;background:#fff;color:var(--rex-ink);border:1px solid var(--rex-line);border-radius:8px;padding:1.3rem;margin:1.6rem 0;font-family:inherit}
.rex *{box-sizing:border-box}.rex h3{font-size:1.2rem;line-height:1.35;margin:0 0 .55rem}.rex p{line-height:1.58;font-size:.94rem;margin:.6rem 0}.rex .rex-kicker{font:600 .72rem/1.4 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.055em;color:var(--rex-teal);margin:0 0 .65rem}.rex .rex-note{font-size:.83rem;color:var(--rex-muted);line-height:1.5}.rex-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:1rem;margin:1rem 0}.rex-control label{display:block;font:500 .84rem/1.4 system-ui,sans-serif;margin-bottom:.4rem}.rex-control output{font-weight:700;float:right;margin-left:.4rem;font-variant-numeric:tabular-nums}.rex input[type=range]{width:100%;min-height:24px;accent-color:var(--rex-teal);cursor:pointer}.rex-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin:.7rem 0}.rex button{background:#f3f8f8;border:1px solid #b7ced0;color:var(--rex-ink);border-radius:5px;padding:.55rem .9rem;font:500 .85rem/1.4 system-ui,sans-serif;min-height:39px;cursor:pointer}.rex button:hover{background:#e5f1f0}.rex .rex-primary{background:var(--rex-teal);border-color:var(--rex-teal);color:white}.rex .rex-primary:hover{background:#075a57}.rex button:focus-visible,.rex input:focus-visible,.rex summary:focus-visible{outline:3px solid #cc8e2d;outline-offset:3px}.rex canvas{max-width:100%;display:block;height:auto;width:100%;margin:.7rem auto}.rex-legend{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;font:400 .78rem/1.4 system-ui,sans-serif;color:var(--rex-muted);margin:.4rem 0 .9rem}.rex-legend i{width:10px;height:10px;border-radius:2px;display:inline-block;margin-right:5px;vertical-align:middle}.rex details{border-top:1px solid var(--rex-line);padding-top:.75rem;margin-top:1rem}.rex summary{font:600 .88rem/1.5 system-ui,sans-serif;cursor:pointer}.rex details p{font-size:.88rem}.rex .rex-formula{font:1.1rem/1.6 "Cambria Math","STIX Two Text","Times New Roman",serif;text-align:center;background:#f7faf9;padding:.8rem;margin:1rem 0;border-left:3px solid #8eb8b5;overflow-x:auto}.rex-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.65rem;margin:1rem 0}.rex-stat{background:#f5f9f8;border:1px solid #dce8e6;border-radius:4px;padding:.7rem .8rem}.rex-stat span{display:block;font:500 .75rem/1.4 system-ui,sans-serif;color:var(--rex-muted)}.rex-stat strong{display:block;font:600 1.2rem/1.5 system-ui,sans-serif;font-variant-numeric:tabular-nums}.rex-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1.1rem 0}.rex-field{margin:0;padding:.65rem;border:1px solid var(--rex-line);border-radius:5px;background:#fff}.rex-field figcaption{font:600 .8rem/1.4 system-ui,sans-serif;text-align:center;min-height:2.5em;margin-bottom:.6rem}.rex-field-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;aspect-ratio:1}.rex-field-grid span{display:flex;align-items:center;justify-content:center;font:500 .7rem/1.2 system-ui,sans-serif;font-variant-numeric:tabular-nums;min-width:0}.rex-field .rex-caption{font:400 .75rem/1.5 system-ui,sans-serif;margin-top:.55rem;text-align:center;color:var(--rex-muted)}.rex-ramp{display:inline-block;width:160px;height:.65rem;background:linear-gradient(to right,#fff,#cae6df,#72b4a9,#2f867c,#124e49)}.rex-status{font-size:.85rem;line-height:1.5;color:var(--rex-muted)}
@media(max-width:700px){.rex{padding:1rem .8rem}.rex-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.rex-field-grid span{font-size:.74rem}.rex-controls{grid-template-columns:1fr}.rex-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.rex h3{font-size:1.1rem}.rex-legend{gap:.6rem}.rex-formula{font-size:1rem}}
@media print{.rex{break-inside:avoid;border-color:#aaa}.rex-controls,.rex-buttons{display:none}.rex details{display:block}.rex summary{list-style:none}.rex-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.rex-stat{background:#fff}.rex p,.rex .rex-note{color:#222}}
@media(prefers-reduced-motion:reduce){.rex *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
