/* Premium PMR (Jacobson): one luminous body, one screen. Injected DOM lives in .pmr-body-engine. */
.pmr-engine:has(.pmr-body-engine){ display:block; max-width:480px; margin:0 auto; padding:8px 16px; }
.pmr-body-engine{
  --pmr-sage:#5a6b4a; --pmr-sage-bright:#6f8455; --pmr-gold:#b08c5a;
  --pmr-body-fill:rgba(90,107,74,.10); --pmr-body-stroke:rgba(31,28,24,.16);
  display:flex; flex-direction:column; align-items:center; width:100%; max-width:440px; margin:0 auto;
}
:root:not(.light-theme) .pmr-body-engine{ --pmr-body-fill:rgba(245,241,232,.07); --pmr-body-stroke:rgba(245,241,232,.20); }

.pmr-bwhich{ font-family:var(--font-sans); font-size:12px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:10px; }
.pmr-bwhich b{ color:var(--text-primary); font-weight:700; font-variant-numeric:tabular-nums; }

.pmr-bstage{ position:relative; height:clamp(230px,40vh,360px); aspect-ratio:200/460; }
.pmr-bsvg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.pmr-silhouette > *{ fill:var(--pmr-body-fill); stroke:var(--pmr-body-stroke); stroke-width:1; }
.pmr-region{ color:var(--pmr-sage); opacity:0; filter:blur(8px); transform-box:fill-box; transform-origin:center;
  transition:opacity .7s ease, color .7s ease, transform .7s ease; }
.pmr-region > *{ fill:currentColor; }
.pmr-region.is-done{ color:var(--pmr-sage); opacity:.30; }
.pmr-region.is-tense{ color:var(--pmr-gold); opacity:.95; animation:pmrTense 1.1s ease-in-out infinite alternate; }
.pmr-region.is-release{ color:var(--pmr-sage-bright); opacity:.66; animation:pmrRelease 1.6s ease-out 1; }
@keyframes pmrTense{ from{ transform:scale(.93); } to{ transform:scale(1.05); } }
@keyframes pmrRelease{ 0%{ transform:scale(1.05); opacity:.95; } 100%{ transform:scale(1.0); opacity:.66; } }
.pmr-body-engine.is-fin .pmr-region{ color:var(--pmr-sage-bright); opacity:.42; filter:blur(9px); }

/* readout */
.pmr-brd{ text-align:center; margin-top:18px; min-height:118px; }
.pmr-bphase{ font-family:var(--font-serif); font-weight:500; font-size:clamp(21px,5.4vw,27px); color:var(--text-primary);
  transition:opacity .4s ease,transform .4s ease; }
.pmr-bphase.t-tense{ color:var(--pmr-gold); }
.pmr-bphase.t-release{ color:var(--pmr-sage); }
.pmr-bcount{ font-family:var(--font-serif); font-size:clamp(44px,12vw,66px); line-height:1.05; color:var(--text-primary);
  font-variant-numeric:tabular-nums; }
.pmr-bcount.is-mark{ font-size:clamp(34px,8vw,46px); color:var(--text-muted); }
.pmr-bname{ font-family:var(--font-sans); font-size:13px; letter-spacing:.06em; color:var(--text-muted);
  text-transform:uppercase; margin-top:2px; }
.pmr-bhint{ font-family:var(--font-sans); font-size:14px; line-height:1.5; color:var(--text-secondary);
  margin-top:9px; max-width:330px; margin-left:auto; margin-right:auto; min-height:21px;
  transition:opacity .4s ease; }

/* pips */
.pmr-pips{ display:flex; gap:9px; margin-top:16px; }
.pmr-pip{ width:8px; height:8px; border-radius:50%; background:var(--border-subtle); transition:.4s ease; }
.pmr-pip.is-done{ background:var(--pmr-sage); }
.pmr-pip.is-now{ background:var(--pmr-gold); box-shadow:0 0 0 4px color-mix(in srgb,var(--pmr-gold) 20%, transparent); }

/* controls + settings reuse orb look */
.pmr-bctl{ display:flex; gap:12px; margin-top:24px; }
.pmr-bbtn{ font-family:var(--font-sans); font-size:13.5px; letter-spacing:.04em; font-weight:700;
  padding:13px 26px; border-radius:100px; cursor:pointer; border:1px solid var(--border-subtle);
  background:transparent; color:var(--text-primary); transition:.26s ease; }
.pmr-bbtn:hover{ border-color:var(--pmr-sage); }
.pmr-bbtn.is-primary{ background:var(--pmr-sage); border-color:var(--pmr-sage); color:#fff; }
.pmr-bbtn.is-primary:hover{ background:var(--pmr-sage-bright); border-color:var(--pmr-sage-bright); }
.pmr-bbtn:focus-visible{ outline:2px solid var(--pmr-gold); outline-offset:3px; }
.pmr-bbtn[hidden]{ display:none; }

.pmr-bset-toggle{ margin-top:20px; background:none; border:none; color:var(--text-muted);
  font-family:var(--font-sans); font-size:12px; letter-spacing:.13em; text-transform:uppercase;
  cursor:pointer; display:inline-flex; align-items:center; gap:7px; transition:color .3s; }
.pmr-bset-toggle:hover{ color:var(--text-primary); }
.pmr-bset-toggle .chev{ transition:transform .35s ease; }
.pmr-bset-toggle[aria-expanded="true"] .chev{ transform:rotate(180deg); }
.pmr-bpanel{ width:100%; max-width:380px; overflow:hidden; max-height:0; opacity:0;
  transition:max-height .5s ease,opacity .4s ease,margin .4s ease; }
.pmr-bpanel.is-open{ max-height:300px; opacity:1; margin-top:14px; }
.pmr-bpanel-inner{ background:var(--bg-elevated); border:1px solid var(--border-subtle); border-radius:18px; padding:18px 20px 4px; }
.pmr-brow{ display:flex; align-items:center; justify-content:space-between; padding:11px 0;
  border-bottom:1px solid color-mix(in srgb,var(--border-subtle) 55%, transparent); }
.pmr-brow:last-child{ border-bottom:none; }
.pmr-brow label{ font-size:14px; color:var(--text-primary); }
.pmr-brow .pmr-bval{ font-family:var(--font-serif); font-size:19px; color:var(--pmr-sage);
  min-width:52px; text-align:right; font-variant-numeric:tabular-nums; }
.pmr-body-engine input[type=range]{ -webkit-appearance:none; appearance:none; width:120px; height:3px;
  border-radius:3px; background:var(--border-subtle); outline:none; }
.pmr-body-engine input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:18px; height:18px;
  border-radius:50%; background:var(--pmr-sage); cursor:pointer; box-shadow:0 1px 4px rgba(0,0,0,.25); }
.pmr-body-engine input[type=range]::-moz-range-thumb{ width:18px; height:18px; border:none; border-radius:50%;
  background:var(--pmr-sage); cursor:pointer; }
.pmr-bsw{ position:relative; width:46px; height:26px; flex:none; }
.pmr-bsw input{ opacity:0; width:0; height:0; }
.pmr-bsw .tr{ position:absolute; inset:0; border-radius:100px; background:var(--border-subtle); transition:.3s ease; cursor:pointer; }
.pmr-bsw .tr::before{ content:""; position:absolute; width:20px; height:20px; border-radius:50%; background:#fff;
  top:3px; left:3px; transition:.3s ease; box-shadow:0 1px 3px rgba(0,0,0,.3); }
.pmr-bsw input:checked + .tr{ background:var(--pmr-sage); }
.pmr-bsw input:checked + .tr::before{ transform:translateX(20px); }

@media (prefers-reduced-motion: reduce){
  .pmr-region.is-tense, .pmr-region.is-release{ animation:none; }
}
