/* ===== REAL USE PASS 01: one tap per set, one hold per workout, rest that
   knows whether you were looking, and physical load selectors. ===== *//* SET DONE: one tap. A solid key with a steel disc, it presses and locks. */


:root:not([data-theme="dark"]) body.pm-premium .sess .btn.setdone{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;min-height:72px;border-radius:22px!important;
  background:var(--vr-graphite)!important;color:var(--on-key,#fff)!important;box-shadow:var(--vr-graphite-edge)!important;transition:transform .12s var(--ease),box-shadow .12s var(--ease)}
body.pm-premium .sess .btn.setdone:active{transform:translateY(2px) scale(.992)}
body.pm-premium .sess .btn.setdone .sd-disc{flex:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(255,255,255,0.13),rgba(28,29,30,0.12)),linear-gradient(#A7CFF2,#A7CFF2);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 4px rgba(0,0,0,.35);transition:transform .16s var(--ease),background .16s}
body.pm-premium .sess .btn.setdone .sd-disc svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
body.pm-premium .sess .btn.setdone .hold-t{font-size:18px;font-weight:800;letter-spacing:-.01em}
body.pm-premium .sess .btn.setdone.held .sd-disc{transform:scale(1.14);background:linear-gradient(180deg,#DDDEDF,#8792A2)}
body.pm-premium .sess .btn.setdone.held{animation:holdPop .42s var(--ease)}/* the finish hold reads as the one ceremony in the room */

body.pm-premium .sess .btn.hold .hold-t{font-size:17px;font-weight:800}/* REST FINISHED (you were away): no clock running, the next set waits for you */

body.pm-premium .sess.rest-ready #sessTimerBox,body.pm-premium .sess.rest-ready #sessSwipeHint,body.pm-premium .sess.rest-ready #sessWhyBtn,body.pm-premium .sess.rest-ready #sessOver{display:none!important}
body.pm-premium .sess.rest-last #sessTimerBox,body.pm-premium .sess.rest-last #sessSwipeHint,body.pm-premium .sess.rest-last #sessWhyBtn,body.pm-premium .sess.rest-last #sessOver{display:none!important}
body.pm-premium .sess .rf-ready{display:flex;flex-direction:column;align-items:center;gap:6px;margin:10px 0 14px;text-align:center}
body.pm-premium .sess .rf-ready b{font-size:clamp(28px,8vw,36px);font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.05}
body.pm-premium .sess .rf-ready span{font-size:15px;color:var(--ink-2);font-weight:600}
body.pm-premium .sess.rest-ready .rf-word,body.pm-premium .sess.rest-last .rf-word{color:var(--ink-2)}
body.pm-premium .sess.rest-last .rf-nx.last{font-size:18px;font-weight:700;color:var(--ink);margin:14px 0 10px}
body.pm-premium .sess .rf-readykeys{display:flex;gap:10px}
body.pm-premium .sess .rf-readykeys .btn{flex:1;min-height:50px!important;margin:0}/* THE WAY BACK from a set that opened itself: a strip with three quiet keys */

body.pm-premium .sess .auto-esc{display:flex;flex-direction:column;gap:8px;margin:6px 0 4px;padding:10px 12px;border-radius:16px;background:var(--frost-2);border:1px solid var(--hairline);box-shadow:0 1px 0 rgba(255,255,255,.7) inset}
body.pm-premium .sess .auto-esc.hide{display:none!important}
body.pm-premium .sess .auto-esc .ae-t{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);letter-spacing:.01em}
body.pm-premium .sess .auto-esc .ae-keys{display:flex;gap:8px}
body.pm-premium .sess .auto-esc .ae-keys button{flex:1;min-height:40px;border-radius:12px;border:1px solid var(--hair);background:linear-gradient(180deg,#FBFCFE,#EFEEEB);color:var(--ink);font-weight:700;font-size:var(--ui-meta,14px);padding:0 6px;box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 1px 2px rgba(30,31,33,.08);cursor:pointer}
body.pm-premium .sess .auto-esc .ae-keys button:active{transform:translateY(1px)}/* ===== PHYSICAL LOAD SELECTORS ===== *//* when the rack or the stack is the interaction, the +/- and the fine steps step aside; the number stays the reading */


body.pm-premium #sessWStep[data-sel="rack"] .wbig-step,body.pm-premium #sessWStep[data-sel="pin"] .wbig-step,
body.pm-premium #sessWStep[data-sel="rack"] .wsmall,body.pm-premium #sessWStep[data-sel="pin"] .wsmall,
body.pm-premium #sessWStep[data-sel="rack"] .wload,body.pm-premium #sessWStep[data-sel="pin"] .wload,
body.pm-premium #sessWStep[data-sel="rack"] .wplates,body.pm-premium #sessWStep[data-sel="pin"] .wplates{display:none!important}
body.pm-premium #sessWStep[data-sel="rack"] .wsrow,body.pm-premium #sessWStep[data-sel="pin"] .wsrow{margin-top:0!important}
body.pm-premium #sessWStep[data-sel="rack"] .wbig b,body.pm-premium #sessWStep[data-sel="pin"] .wbig b{font-size:clamp(34px,10vw,44px)!important}
body.pm-premium #sessWStep[data-sel="rack"] .wbig small,body.pm-premium #sessWStep[data-sel="pin"] .wbig small{font-size:14px!important;font-weight:700;color:var(--ink-2);letter-spacing:0;text-transform:none}
body.pm-premium .wsel{margin:6px -6px 0}
body.pm-premium .wsel.hide{display:none!important}
body.pm-premium .wother{display:block;margin:10px auto 0;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--hair);background:linear-gradient(180deg,#FBFCFE,#EFEEEB);color:var(--ink-2);font-weight:700;font-size:var(--ui-meta,14px);box-shadow:0 1px 0 rgba(255,255,255,.8) inset;cursor:pointer}
body.pm-premium .wother.hide{display:none!important}
/* THE RACK. Two shelves of pairs, scrolled sideways like walking the rack.
   The chosen pair lifts off its shelf with a graphite edge. No glow. */
  transition:transform .18s var(--ease),background .18s,border-color .18s,box-shadow .18s;-webkit-tap-highlight-color:transparent}/* THE STACK. Plates top light to bottom heavy, a hole in each, the pin in
   the chosen one. Plates at and above the pin ride with it. */

body.pm-premium .pinstack{position:relative;max-height:min(46vh,330px);overflow-y:auto;overflow-x:hidden;padding:6px 14px 6px 46px;border-radius:18px;background:linear-gradient(180deg,#F4F3F0,#E4E3E0);box-shadow:inset 0 2px 8px rgba(30,31,33,.16),inset 0 1px 0 rgba(255,255,255,.6);scrollbar-width:none;touch-action:pan-y}
body.pm-premium .pinstack::-webkit-scrollbar{display:none}
body.pm-premium .ps-guide{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none}
body.pm-premium .ps-guide i{position:absolute;top:0;bottom:0;width:6px;border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,0.32),#F8F7F4 45%,rgba(255,255,255,0.06)),linear-gradient(#A7CFF2,#A7CFF2);box-shadow:0 0 0 1px rgba(30,31,33,.12)}
body.pm-premium .ps-guide i:first-child{left:calc(46px + 22%)}
body.pm-premium .ps-guide i:last-child{right:calc(14px + 22%)}
body.pm-premium .ps-plates{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px}
body.pm-premium .ps-plate{position:relative;height:14px;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:0 0 0 16px;border:0;border-radius:3px;background:linear-gradient(180deg,#474849,#2A2B2C);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 1px 0 rgba(0,0,0,.35);cursor:pointer;transition:transform .18s var(--ease),background .18s;-webkit-tap-highlight-color:transparent;font-family:inherit}
body.pm-premium .ps-plate b{font-size:var(--ui-meta,14px);font-weight:800;color:rgba(255,255,255,.72);letter-spacing:.02em;font-variant-numeric:tabular-nums;line-height:1}
body.pm-premium .ps-plate .ps-hole{position:absolute;left:4px;top:50%;width:8px;height:8px;border-radius:50%;transform:translateY(-50%);background:radial-gradient(circle at 40% 35%,#111213,#060708);box-shadow:inset 0 1px 1px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.12)}
body.pm-premium .ps-plate.lift{background:linear-gradient(180deg,#8792A2,#434445)}
body.pm-premium .ps-plate.lift b{color:#fff}
body.pm-premium .ps-plate.on{background:linear-gradient(180deg,rgba(255,255,255,0.13),rgba(28,29,30,0.12)),linear-gradient(#A7CFF2,#A7CFF2);transform:translateX(2px)}
body.pm-premium .ps-plate.on b{color:#fff}
body.pm-premium .ps-pin{position:absolute;left:0;z-index:2;width:56px;height:16px;margin-top:-8px;touch-action:none;cursor:grab;display:flex;align-items:center}
body.pm-premium .ps-pin.anim{transition:top .2s cubic-bezier(.3,1.2,.4,1)}
body.pm-premium .ps-pin.drag{cursor:grabbing}
body.pm-premium .ps-pin i{display:block;width:100%;height:8px;border-radius:4px;background:linear-gradient(180deg,#FBFAF7,rgba(255,255,255,0.34) 55%,rgba(28,29,30,0.04)),linear-gradient(#A7CFF2,#A7CFF2);box-shadow:0 2px 3px rgba(30,31,33,.4),inset 0 1px 0 rgba(255,255,255,.8)}
body.pm-premium .ps-pin::before{content:"";position:absolute;left:0;top:50%;width:20px;height:20px;border-radius:50%;transform:translateY(-50%);background:radial-gradient(circle at 40% 35%,#FFFFFF,rgba(255,255,255,0.28) 60%,rgba(28,29,30,0.08)),linear-gradient(#A7CFF2,#A7CFF2);box-shadow:0 2px 4px rgba(30,31,33,.45),inset 0 1px 0 rgba(255,255,255,.9)}
body.pm-premium .ps-pin.hide{display:none!important}
body.pm-premium .ps-cap{position:sticky;bottom:0;text-align:right;font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding-top:4px}/* a landmine: the plates ride one end of a bar that leans on its pivot */

body.pm-premium .lr-landmine{transform:rotate(-14deg);transform-origin:12% 50%}
body.pm-premium .lr-landmine .lr-l{visibility:hidden}/* the reading owns the whole row once the steps step aside */

body.pm-premium #sessWStep[data-sel="rack"] .wsrow,body.pm-premium #sessWStep[data-sel="pin"] .wsrow{display:flex!important;grid-template-columns:none!important;justify-content:center}
body.pm-premium #sessWStep[data-sel="rack"] .wbig,body.pm-premium #sessWStep[data-sel="pin"] .wbig{flex:1 1 100%!important;width:100%!important;max-width:none!important;text-align:center;padding:10px 12px!important}
body.pm-premium #sessWStep[data-sel="rack"] .wbig small,body.pm-premium #sessWStep[data-sel="pin"] .wbig small{display:block!important;margin-top:4px}
body.pm-premium #sessWStep[data-sel="rack"] .wbig b,body.pm-premium #sessWStep[data-sel="pin"] .wbig b{margin:0 auto}/* the landmine and the plate machine say what the number is, under it */

body.pm-premium #sessWStep[data-load="LANDMINE_ADDED_PLATES"] .wbig small,body.pm-premium #sessWStep[data-load="PLATE_LOADED_MACHINE"] .wbig small,body.pm-premium #sessWStep[data-load="ASSISTED_BODYWEIGHT"] .wbig small{display:block!important;margin-top:2px;font-size:var(--ui-meta,14px)!important;font-weight:700;text-transform:none;letter-spacing:0;color:var(--ink-2)!important}
/* ===== THE LIVE ROOM, REBUILT AS A RULE (phones) =====
   Six protected regions, top to bottom: the workout line, the identity
   (lift, set, video), the stage (the equipment on its ground), the set
   state (strip), the current interaction (workspace), the context, and
   the one primary action. The stage has a guaranteed height and never
   gets crushed; the workspace is the only region that flexes, and it
   scrolls inside itself before anything else moves. Nothing is cropped. */
@media (max-width:899px){
  body.pm-premium .sess{--stage-h:clamp(88px,15.5vh,150px)}
  @media (max-height:700px){ body.pm-premium .sess{--stage-h:clamp(64px,11vh,96px)} }
  body.pm-premium .sess .sess-body{display:flex!important;flex-direction:column!important;justify-content:flex-start!important;overflow:hidden!important;padding:4px 0 0!important;min-height:0}
  body.pm-premium .sess #sessWork{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}/* identity + stage: a fixed-height block, its own material */
  
  :root:not([data-theme="dark"]) body.pm-premium .sess:not(.resting) .sess-head{flex:none!important;min-height:0!important;max-height:none!important;
    grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto var(--stage-h)!important;row-gap:4px;padding:12px 14px 12px 16px!important;margin:2px 0 8px!important}
  body.pm-premium .sess .sess-head::after{display:none!important}
  body.pm-premium .sess:not(.resting) .sess-head .sess-lift{white-space:normal!important;overflow:visible!important;text-overflow:clip;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(24px,6.6vw,36px)!important;line-height:1.06}
  body.pm-premium .sess:not(.resting) .sess-set{white-space:normal!important;overflow:visible!important}
  body.pm-premium .sess:not(.resting) .sess-stage{grid-column:1 / span 2!important;grid-row:2!important;height:var(--stage-h)!important;min-height:var(--stage-h)!important;max-height:var(--stage-h)!important;margin:0!important;position:relative!important;
    display:flex!important;align-items:flex-end;justify-content:center;container-type:size;overflow:visible}/* the ground: a soft ellipse right under the object, so nothing floats */
  
  body.pm-premium .sess:not(.resting) .sess-stage::after{content:"";position:absolute;left:14%;right:14%;bottom:2px;height:14px;border-radius:50%;background:radial-gradient(closest-side,rgba(34,35,36,.24),rgba(34,35,36,0));pointer-events:none;z-index:0}
  body.pm-premium .sess:not(.resting) .sess-stage>*{position:relative;z-index:1}
  body.pm-premium .sess:not(.resting) .sess-stage>img,body.pm-premium .sess:not(.resting) .sess-stage .stg-obj{max-height:calc(100% - 8px)!important;height:calc(100% - 8px);width:auto;max-width:64%!important;margin:0 auto 6px!important;object-fit:contain}
  body.pm-premium .sess:not(.resting) .sess-stage .stg-obj img,body.pm-premium .sess:not(.resting) .sess-stage .stg-obj svg{height:100%;width:auto;max-height:100%}
  body.pm-premium .sess:not(.resting) .sess-stage .loadvis:not(:has(.lr-bar)){top:0!important;bottom:6px!important}
  body.pm-premium .sess:not(.resting) .sess-stage .loadvis .lr-obj{max-width:64%!important}
  body.pm-premium .sess:not(.resting) .sess-stage .loadvis:has(.lr-bar){bottom:22%!important}
  body.pm-premium .sess:not(.resting) .sess-stage.benched .loadvis:has(.lr-bar){bottom:40%!important}
  body.pm-premium .sess:not(.resting) .sess-stage .wl-bench{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);max-height:64%;width:auto;max-width:48%}
  body.pm-premium .sess:not(.resting) .sess-mini{grid-column:2!important;grid-row:1!important;width:40px!important;align-self:start}
  body.pm-premium .sess .setstrip{flex:none}/* the workspace flexes, scrolls inside itself, and never pushes the action */
  
  :root:not([data-theme="dark"]) body.pm-premium .sess .sess-ws{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-width:none}
  body.pm-premium .sess .sess-ws::-webkit-scrollbar{display:none}
  body.pm-premium .sess .sess-ws>div:not(.hide){margin:auto 0}
  body.pm-premium .sess .sess-ctx{flex:none;margin-top:8px!important;padding:8px 0 2px!important}
  body.pm-premium .sess .sess-foot{flex:none}/* the clock and the number are never cut */
  
  body.pm-premium .sess .sess-clock{white-space:nowrap;overflow:visible}/* selectors size to the room */
  
  body.pm-premium .sess .pinstack{max-height:clamp(140px,calc(100dvh - 620px),280px)}/* reps: the stage folds to a plate on short phones only */
  
  :root:not([data-theme="dark"]) body.pm-premium .sess:has(#sessRepsBox:not(.hide)) .sess-head{flex:none!important;grid-template-rows:auto var(--stage-h)!important;min-height:0!important;max-height:none!important}
  @media (max-height:760px){
    :root:not([data-theme="dark"]) body.pm-premium .sess:has(#sessRepsBox:not(.hide)) .sess-head{grid-template-rows:auto!important}
    body.pm-premium .sess:has(#sessRepsBox:not(.hide)) .sess-stage{display:none!important}
  }
}
/* a rack or a stack in the workspace: the stage gives a little, the reading tightens */
@media (max-width:899px){
  body.pm-premium .sess:has(#sessWStep[data-sel="rack"]:not(.hide)),body.pm-premium .sess:has(#sessWStep[data-sel="pin"]:not(.hide)){--stage-h:clamp(64px,9vh,84px)}
  body.pm-premium #sessWStep[data-sel="rack"] .wbig,body.pm-premium #sessWStep[data-sel="pin"] .wbig{padding:4px 12px 6px!important}
  body.pm-premium #sessWStep[data-sel="rack"] .wbig b,body.pm-premium #sessWStep[data-sel="pin"] .wbig b{font-size:clamp(30px,8.5vw,38px)!important}
  body.pm-premium #sessWStep[data-sel="rack"] .wbig small,body.pm-premium #sessWStep[data-sel="pin"] .wbig small{margin-top:1px;font-size:var(--ui-meta,14px)!important}
  body.pm-premium .sess .pinstack{max-height:clamp(120px,calc(100dvh - 640px),260px)}
  body.pm-premium .wother{margin-top:8px;min-height:36px}
  /* short phones: the stage stands beside the name, the foot loses its spare row */
  @media (max-height:700px){
    :root:not([data-theme="dark"]) body.pm-premium .sess:not(.resting) .sess-head{grid-template-columns:minmax(0,1fr) 42%!important;grid-template-rows:auto!important;padding:10px 12px 10px 14px!important}
    body.pm-premium .sess:not(.resting) .sess-stage{grid-column:2!important;grid-row:1!important;height:var(--stage-h)!important;min-height:var(--stage-h)!important;align-self:end}
    body.pm-premium .sess:not(.resting) .sess-stage>img,body.pm-premium .sess:not(.resting) .sess-stage .stg-obj{max-width:90%!important}
    body.pm-premium .sess:not(.resting) .sess-stage .loadvis .lr-obj{max-width:90%!important}
    body.pm-premium .sess:not(.resting) .sess-mini{display:none!important}
    body.pm-premium .sess:not(.resting) .sess-video{position:relative}
    body.pm-premium .sess .sess-foot{min-height:0!important}
    body.pm-premium .sess .sess-foot .foot-gap{display:none!important}
  }
}/* ===== ONBOARDING: gym suggestions and the combination lock ===== */

body.pm-premium .gym-sug{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:6px;border-radius:18px;background:var(--frost-2);border:1px solid var(--hairline);box-shadow:0 12px 30px -14px rgba(30,31,33,.35),0 1px 0 rgba(255,255,255,.8) inset}
body.pm-premium .gym-sug.hide{display:none!important}
body.pm-premium .gym-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;min-height:50px;padding:10px 14px;border-radius:13px;border:1px solid transparent;background:transparent;text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
body.pm-premium .gym-row b{font-size:17px;font-weight:800;letter-spacing:-.01em}
body.pm-premium .gym-row small{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);white-space:nowrap}
body.pm-premium .gym-row:first-child{background:linear-gradient(180deg,#FBFCFE,#EFEEEB);border-color:var(--hair);box-shadow:0 1px 0 rgba(255,255,255,.9) inset}
body.pm-premium .gym-row:active{transform:translateY(1px)}
body.pm-premium .gym-row.own b{font-weight:700;color:var(--ink-2)}
body.pm-premium .onb-step:has(.gym-sug:not(.hide)) .onb-chips{display:none}/* the lock: three wheels in one carved housing, the reading above */

body.pm-premium .lock{display:flex;flex-direction:column;align-items:center;gap:8px;user-select:none;-webkit-user-select:none}
body.pm-premium .lock-read{display:flex;align-items:baseline;gap:8px;border:0;background:transparent;font:inherit;color:var(--ink);cursor:pointer;padding:4px 10px;border-radius:14px}
body.pm-premium .lock-read b{font-family:var(--vr-num,inherit);font-size:clamp(46px,14vw,64px);font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
body.pm-premium .lock-read span{font-size:18px;font-weight:700;color:var(--ink-2)}
body.pm-premium .lock-wheels{--h:60px;position:relative;display:flex;gap:6px;padding:8px;border-radius:24px;background:linear-gradient(180deg,#EAE9E6,#D7D6D3);box-shadow:inset 0 3px 10px rgba(30,31,33,.22),inset 0 -1px 0 rgba(255,255,255,.6),0 1px 0 rgba(255,255,255,.9)}
body.pm-premium .lock-col{position:relative;width:74px;height:calc(var(--h)*5);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#8792A2 0%,#F9F8F5 22%,#FFFFFF 50%,#F9F8F5 78%,#8792A2 100%);box-shadow:inset 0 0 0 1px rgba(30,31,33,.12)}
body.pm-premium .lock-col[data-k="d"]{width:58px}
body.pm-premium .lock-band{position:absolute;z-index:2;left:4px;right:4px;top:calc(var(--h)*2);height:var(--h);border-radius:12px;border-top:1.5px solid rgba(34,35,36,.28);border-bottom:1.5px solid rgba(34,35,36,.28);pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.18))}
body.pm-premium .lock-sc{position:relative;height:100%;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain;outline:none;-webkit-overflow-scrolling:touch}
body.pm-premium .lock-sc::-webkit-scrollbar{display:none}
body.pm-premium .lock-pad{height:calc(var(--h)*2)}
body.pm-premium .lock-i{height:var(--h);scroll-snap-align:center;display:flex;align-items:center;justify-content:center;font-family:var(--vr-num,inherit);font-size:36px;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums;will-change:transform;cursor:pointer}
body.pm-premium .lock-i.on{color:var(--ink)}
body.pm-premium .lock-col::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
@media (max-width:370px){ body.pm-premium .lock-col{width:66px} body.pm-premium .lock-col[data-k="d"]{width:52px} body.pm-premium .lock-i{font-size:32px} }
@media (max-height:700px){ body.pm-premium .lock-wheels{--h:50px} body.pm-premium .lock-read b{font-size:clamp(40px,12vw,52px)} body.pm-premium .lock-i{font-size:31px} }
/* ===== COACH: bottom-weighted on phones. Air above, auxe and everything you
   touch near the thumb. The composer rides above the keyboard, the latest
   message stays in view, and there is no dead gap under the input. ===== */
@media (max-width:899px){
  body.pm-premium #ask{--navh:calc(84px + env(safe-area-inset-bottom));display:flex;flex-direction:column;min-height:calc(var(--vvh,100dvh) - var(--ask-top,0px) - var(--navh));box-sizing:border-box;padding-bottom:calc(var(--kb,0px) + 6px)!important}
  body.pm-premium #ask.hide{display:none!important}
  body.pm-premium #ask .askscroll>.kicker{flex:none}
  body.pm-premium #ask:not(.talking) .adam-head{margin-top:auto!important}
  body.pm-premium #ask:not(.talking) .adam-now{margin-bottom:10px}
  body.pm-premium #ask.talking .chatbox{flex:1 1 auto;justify-content:flex-end;min-height:0!important}
  body.pm-premium #ask .chatdock{position:sticky;bottom:calc(var(--kb,0px) + var(--dock-b,calc(84px + env(safe-area-inset-bottom))));padding-bottom:6px}
  html.kb-open body.pm-premium #ask .chatdock{--dock-b:0px}
  html.kb-open body.pm-premium #ask,body.pm-premium:has(#tabs.kb) #ask{--navh:0px}
  html.kb-open body.pm-premium #ask:not(.talking) .adam-stage{height:92px!important}
  html.kb-open body.pm-premium #ask:not(.talking) .adam-head .acore{width:72px!important;height:72px!important;margin:0 0 12px!important}
  html.kb-open body.pm-premium #ask:not(.talking) .adam-plinth{width:120px;height:26px}
  html.kb-open body.pm-premium #ask:not(.talking) .adam-id h1{font-size:24px!important}
}
/* the tabs slide away for the keyboard on every platform; the dock takes the floor the moment they do */
@media (max-width:899px){ body.pm-premium:has(#tabs.kb) #ask .chatdock{--dock-b:0px} body.pm-premium:has(#tabs.kb) #ask{padding-bottom:calc(var(--kb,0px) + 6px)!important} }/* the navigation really leaves when the keyboard comes, on every theme */

:root:not([data-theme="dark"]) body.pm-premium .tabs.kb,body.pm-premium .tabs.kb{transform:translateY(120%)!important;pointer-events:none}
/* while the keyboard has the navigation away, the room the navigation reserved goes with it */
@media (max-width:899px){ body.pm-premium:has(#tabs.kb):has(#ask:not(.hide)) main.col{padding-bottom:0!important} }
/* short phones: the presence is compact in the open state so the panel, the prompts and the composer all sit above the navigation */
@media (max-width:899px) and (max-height:700px){
  body.pm-premium #ask:not(.talking) .adam-stage{height:104px!important}
  body.pm-premium #ask:not(.talking) .adam-head .acore{width:80px!important;height:80px!important;margin:0 0 14px!important}
  body.pm-premium #ask:not(.talking) .adam-plinth{width:140px;height:30px}
  body.pm-premium #ask:not(.talking) .adam-id h1{font-size:26px!important}
  body.pm-premium #ask:not(.talking) .adam-now{margin-top:8px;padding:14px 16px 6px}
}
/* last trims: the rack fits with its fallback key in view; the escape keys never wrap */
@media (max-width:899px){
  body.pm-premium .sess .auto-esc .ae-keys button{white-space:nowrap;font-size:var(--ui-meta,14px);padding:0 4px}
}
/* before the day has words there is no conversation to hold room for: the panel sits right on the prompts */
@media (max-width:899px){ body.pm-premium #ask:not(.talking) .chatbox{min-height:0!important;margin:0!important;padding:0!important} }
