/* ---- v11: polish — tap feedback, smoother chrome, scrubber, selection lock ---- */
button.icon, .pbtn, .minitimer, .fab, .nav, .sw, #selBar button {
  -webkit-tap-highlight-color: transparent;
  transition: transform .12s cubic-bezier(.22,.8,.24,1), opacity .12s, background-color .15s, color .15s;
}
button.icon:active, .pbtn:active, .minitimer:active, .fab:active, .nav:active, .sw:active, #selBar button:active {
  transform: scale(.88); opacity: .72;
}
button.icon:disabled:active, .pbtn:disabled:active { transform: none; opacity: inherit; }

/* smoother chrome hide/show */
.rbar, .rfoot {
  transition: transform .38s cubic-bezier(.22,.8,.24,1), opacity .32s cubic-bezier(.22,.8,.24,1), background-color .35s !important;
  will-change: transform, opacity;
}
.minibar {
  display: flex !important;
  transition: opacity .3s cubic-bezier(.22,.8,.24,1), transform .3s cubic-bezier(.22,.8,.24,1);
  opacity: 0; transform: translateY(8px); pointer-events: none;
}
#reader.chromeless .minibar { opacity: 1; transform: none; pointer-events: auto; }
#reader:not(.chromeless) .minibar { opacity: 0; transform: translateY(8px); pointer-events: none; }

/* notes badge pulse when the count changes */
.pbtn .badge.bump { animation: badgeBump .45s cubic-bezier(.22,.8,.24,1); }
@keyframes badgeBump { 0%{ transform: scale(.6); } 60%{ transform: scale(1.2); } 100%{ transform: scale(1); } }

/* scrubber — larger hit area, tip bubble */
.progress, .minibar .mprog { cursor: pointer; touch-action: none; }
.progrow .progress { position: relative; height: 3px; padding: 12px 0; margin: -12px 0; background: transparent; overflow: visible; }
.progrow .progress::before { content:""; position:absolute; left:0; right:0; top:50%; height:3px; transform:translateY(-50%); border-radius:4px; background:color-mix(in srgb,var(--fg) 9%,transparent); }
.progrow .progress i { position:absolute; left:0; top:50%; height:3px; transform:translateY(-50%); border-radius:4px; z-index:1; transition: none; }
.minibar .mprog { height: 20px; top: -10px; background: transparent; }
.minibar .mprog::before { content:""; position:absolute; left:0; right:0; top:10px; height:2px; background:color-mix(in srgb,var(--fg) 8%,transparent); }
.minibar .mprog i { position:absolute; left:0; top:10px; height:2px; transition: none; }
.scrubtip {
  position: fixed; z-index: 40; left: 0; top: 0; transform: translate(-50%, -120%);
  background: var(--fg); color: var(--paper); font: 600 13px/1 var(--sans); font-variant-numeric: tabular-nums;
  padding: 6px 10px; border-radius: 10px; pointer-events: none; opacity: 0; transition: opacity .15s;
  box-shadow: 0 6px 20px rgba(0,0,0,.25); white-space: nowrap;
}
.scrubtip.on { opacity: 1; }
.scrubtip::after { content:""; position:absolute; left:50%; bottom:-5px; transform:translateX(-50%); border:5px solid transparent; border-top-color:var(--fg); }

/* while selecting: stop the page jumping under the handles */
#pdfView.selecting { overflow: hidden !important; touch-action: none; }
#reader.selecting .rbar, #reader.selecting .rfoot { pointer-events: none; }
