/* 钢琴块 */
.pt-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem}
.pt-opt{display:flex;align-items:center;gap:.4rem}
.pt-opt label{margin:0;color:#8a9199;font-size:.8125rem}
.pt-opt .form-select{width:auto}
.pt-switch{margin:0;padding-left:2.4rem}
.pt-switch .form-check-label{font-size:.8125rem;color:#5b6675}

/* 全屏：优先用浏览器原生全屏；iPhone Safari 不支持元素全屏时用 .is-full 兜底铺满屏幕 */
.pt-stage{position:relative;display:flex;justify-content:center;margin-top:.9rem}
.pt-stage.is-full,
.pt-stage:fullscreen,
.pt-stage:-webkit-full-screen{display:flex;align-items:center;justify-content:center;
  margin:0;padding:0;background:#0f172a}
.pt-stage.is-full{position:fixed;inset:0;z-index:1080}
body.pt-full-lock{overflow:hidden}
.pt-full-exit{position:absolute;top:.6rem;right:.6rem;z-index:3;display:none;width:2.3rem;height:2.3rem;
  align-items:center;justify-content:center;padding:0;border-radius:.6rem;
  border:1px solid rgba(255,255,255,.55);background:rgba(15,23,42,.6);color:#fff;font-size:1.15rem;line-height:1;cursor:pointer}
.pt-full-exit:hover{background:rgba(15,23,42,.75)}
.pt-stage.is-full .pt-full-exit,
.pt-stage:fullscreen .pt-full-exit,
.pt-stage:-webkit-full-screen .pt-full-exit{display:flex}
.pt-board{position:relative;display:inline-block;border-radius:.7rem;overflow:hidden;
  background:#0f172a;box-shadow:0 10px 26px rgba(15,23,42,.22);line-height:0;
  user-select:none;-webkit-user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;cursor:pointer}
.pt-board canvas{display:block}
.pt-overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.5rem;padding:1rem;text-align:center;color:#fff;background:rgba(15,23,42,.74);transition:opacity .18s ease-out}
.pt-overlay.is-off{opacity:0;pointer-events:none}
.pt-overlay-title{font-size:1.3rem;font-weight:700}
.pt-overlay-sub{max-width:18rem;font-size:.8125rem;line-height:1.65;color:rgba(255,255,255,.82)}
.pt-overlay .btn{--bs-btn-padding-y:.3rem}
@media (max-width:400px){.pt-overlay-sub{font-size:.75rem}}

.pt-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.9rem}
.pt-stat{padding:.5rem .35rem;border:1px solid #eef1f5;border-radius:.6rem;background:#fafbfd;text-align:center}
.pt-stat b{display:block;color:var(--site-primary,#0f172a);font-size:1.05rem;line-height:1.3;font-variant-numeric:tabular-nums}
.pt-stat span{display:block;margin-top:.1rem;color:#8a9199;font-size:.6875rem}
