/* Approved circular instrument, shared unchanged across hero, Connect and terrarium details. */
.rrh-connect{background:radial-gradient(ellipse at 10% 0,#71b99a28,transparent 48%),linear-gradient(115deg,#164b3b,#003b2b 75%);border:1px solid #7ac9aa80;box-shadow:0 16px 38px #001b1380,inset 0 1px 3px #b0f7d14d;border-radius:19px;padding:16px 16px 12px;width:280px}
.rrh-connect-top{font-size:8px;letter-spacing:.12em;color:#e1f9ef;align-items:center}.rrh-connect h2{font-size:18px;line-height:1.2;margin:5px 0 10px;color:white;letter-spacing:-.02em}
.rrh-connect-mark{position:absolute;right:16px;top:15px;color:#4de9cb}.rrh-connect-mark svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.rrh-environment,.environment-readings,.rrh-detail-values:has(.rr-env-meter){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;background:transparent;min-width:0}
.rrh-environment{border-top:1px solid #8ecfb637;padding-top:10px}
.rr-env-meter{--rr-tone:#14d9bd;position:relative;min-width:0;text-align:center;color:#f6fff8;padding:0 7px;font-family:inherit;container-type:inline-size}
.rr-env-meter+.rr-env-meter{border-left:1px solid #73bf9d4d}
.rr-env-temp{--rr-tone:#ff9b32}.rr-env-label{font-size:clamp(9px,9cqi,13px);font-weight:650;color:#edf8f0;line-height:1.4;margin-bottom:2px}
.rr-env-dial{position:relative;width:100%;aspect-ratio:1;isolation:isolate;background:radial-gradient(circle,#06271fe6 47%,transparent 48%)}
.rr-env-svg{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible}
.rr-env-track{fill:none;stroke:#226e586b;stroke-width:8}.rr-env-inner{fill:none;stroke:#1e604647;stroke-width:2}.rr-env-progress{fill:none;stroke:var(--rr-tone);stroke-width:8;stroke-linecap:butt;transform:rotate(-90deg);transform-origin:60px 60px;filter:drop-shadow(0 0 3px #17dcba60);stroke-dashoffset:var(--meter-offset)}
.rr-env-temp .rr-env-track{stroke:#80613c66}.rr-env-temp .rr-env-inner{stroke:#9f773442}.rr-env-temp .rr-env-progress{filter:drop-shadow(0 0 3px #ff9b3290)}
.rr-env-tick{fill:none;stroke:#a4ffe3;stroke-width:2}.rr-env-temp .rr-env-tick{stroke:#ffe1a5}
.rr-env-center{position:absolute;inset:20% 0 22%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.rr-env-icon{display:block;width:16%;height:26%;fill:none;stroke:var(--rr-tone);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rr-env-center strong{display:flex;align-items:baseline;gap:3px;color:#fff;font-size:clamp(22px,30cqi,46px);letter-spacing:-.055em;line-height:1.1;font-weight:750;font-variant-numeric:tabular-nums}
.rr-env-center strong small{font-size:.38em;letter-spacing:-.02em;font-weight:650}
.rr-env-limits{display:block;font-size:clamp(7px,7.4cqi,11px);color:#ebf8ee;white-space:nowrap;font-weight:650;line-height:1.4;margin:1px -5px 5px}
.rr-env-status{display:inline-block;background:#05664e;color:#65f6d5;border-radius:20px;padding:4px 8px;font-size:clamp(7px,7.6cqi,11px);font-weight:650;line-height:1.3;white-space:nowrap}
.rr-env-near .rr-env-status{background:#715021;color:#ffb04d}
.rrh-connect .rrh-concept{display:block;font-size:7px;line-height:1.4;margin-top:9px;text-align:center;color:#c2dfd0}
.connect-panel .environment-readings{align-self:start;padding:16px 5px;background:linear-gradient(125deg,#174a3890,#00332280);border-radius:15px;border:1px solid #7ac9aa50}
.connect-panel .rr-env-meter{padding:0 12px}.connect-panel .rr-env-dial{max-width:180px;margin:auto}
.rrh-detail-values:has(.rr-env-meter){background:#073e2e;border:1px solid #70b498;border-radius:12px;padding:10px 2px;margin:8px 0;min-height:160px}
:is(.connect-panel,.rrh-connect,#rrh-detail-values).has-entered .rr-env-progress{animation:rr-env-draw 1.4s cubic-bezier(.2,.75,.25,1) both}
:is(.connect-panel,.rrh-connect,#rrh-detail-values):not(.is-visible) .rr-env-progress{animation-play-state:paused}
@keyframes rr-env-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:var(--meter-offset)}}
@media(max-width:800px){.rrh-connect{width:280px;right:8px}.rrh-device{top:295px}.rrh-scene{height:1065px}}
@media(max-width:560px){.rrh-connect{width:270px;right:4px;padding:15px 14px 10px}.rrh-device{top:290px}.rrh-scene{height:1040px}}
@media(max-width:360px){.rrh-connect{width:264px;right:0}.rrh-device{top:285px}.rrh-scene{height:1030px}}
@media(prefers-reduced-motion:reduce){.rr-env-progress{animation:none!important;transition:none!important;stroke-dashoffset:var(--meter-offset)!important}}

/* V21: shared centered numerals; app styling is confined to the terrarium detail. */
.rr-env-center{inset:0;gap:0}
.rr-env-center strong{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%);font-size:clamp(18px,24cqi,36px);line-height:1;letter-spacing:-.035em;white-space:nowrap}
.rr-env-icon{position:absolute;left:50%;top:24%;transform:translateX(-50%);width:13%;height:18%}
#rrh-detail-values:has(.rr-env-meter){background:#f5faf7;border:1px solid #dce9e1;box-shadow:none;border-radius:10px;padding:6px 2px;min-height:0}
#rrh-detail-values .rr-env-meter{color:#183f30;padding:0 5px}
#rrh-detail-values .rr-env-dial{max-width:80px;margin:auto;background:radial-gradient(circle,#fff 47%,transparent 48%)}
#rrh-detail-values .rr-env-label{color:#365b47;font-size:10px}
#rrh-detail-values .rr-env-center strong{color:#183f30;font-size:19px}
#rrh-detail-values .rr-env-limits{color:#486552;font-size:7.5px;margin:0 -5px 4px}
#rrh-detail-values .rr-env-status{font-size:8px;padding:3px 5px;background:#e1f4eb;color:#14715a}
#rrh-detail-values .rr-env-near .rr-env-status{background:#fff0dc;color:#925011}
#rrh-detail-values .rr-env-progress{filter:none}
#rrh-detail-values .rr-env-meter+.rr-env-meter{border-color:#dce9e1}
.connect-simulation{display:inline-flex;align-items:center;gap:7px;margin-top:7px;color:#b9ebd4;font-size:11px;font-weight:500}
.connect-simulation i{width:6px;height:6px;border-radius:50%;background:#77e5bb;box-shadow:0 0 5px #77e5bb55;animation:rr-simulation-pulse 2.8s ease-in-out infinite;animation-play-state:paused}
.connect-panel.is-visible .connect-simulation i{animation-play-state:running}
@keyframes rr-simulation-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.connect-simulation i{animation:none;opacity:1}}
