.mtp-pp-controls { display: flex; flex-wrap: wrap; gap: 14px 20px; align-items: end; }
.mtp-pp-field { display: flex; flex-direction: column; gap: 4px; }
.mtp-pp-check { display: flex; align-items: center; gap: 8px; min-height: 40px; font-size: 14px; }
.mtp-pp-check input { width: 18px; height: 18px; }
.mtp-pp-hint { margin: 12px 0; color: var(--mtp-muted); font-size: 14px; max-width: 70ch; }
.mtp-pp-hint kbd { padding: 1px 6px; border: 1px solid var(--mtp-line); border-radius: 2px; font: inherit; font-size: 12px; background: var(--mtp-night); color: var(--mtp-paper); }
.mtp-tool-panel button.mtp-pp-start { min-height: 48px; padding: 10px 26px; font-size: 16px; font-weight: 600; background: var(--mtp-brass); color: #1a1205; border-color: var(--mtp-brass); }
.mtp-tool-panel button.mtp-pp-start:hover { background: var(--mtp-brass-bright); color: #1a1205; }
.mtp-pp-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.mtp-pp-progress { margin: 0; font-size: 18px; font-weight: 600; color: var(--mtp-brass-bright); }
.mtp-pp-bar { flex: 1 1 160px; height: 6px; background: var(--mtp-night); border: 1px solid var(--mtp-line); }
.mtp-pp-bar span { display: block; height: 100%; width: 0; background: var(--mtp-brass); transition: width .3s; }
.mtp-pp-status { min-height: 1.6em; margin: 14px 0; font-size: 17px; }
.mtp-pp-keys { max-width: 640px; margin: 8px 0 4px; }
.mtp-pp-keys-inner { position: relative; height: 190px; }
.mtp-tool-panel button.mtp-pp-key { position: absolute; top: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 2px; padding: 0 0 10px; box-sizing: border-box; cursor: pointer; border-radius: 0 0 4px 4px; touch-action: manipulation; }
.mtp-tool-panel button.mtp-pp-white { height: 100%; background: #efe6d0; color: #1a1205; border: 1px solid #1a1205; min-height: 0; }
.mtp-tool-panel button.mtp-pp-white:hover:not(:disabled) { background: #fff7e0; color: #1a1205; border-color: var(--mtp-brass); }
.mtp-tool-panel button.mtp-pp-black { height: 62%; background: #15110a; color: #efe6d0; border: 1px solid #000; z-index: 2; min-height: 0; padding-left: 0; padding-right: 0; }
.mtp-tool-panel button.mtp-pp-black:hover:not(:disabled) { background: #3a2f18; color: var(--mtp-brass-bright); }
.mtp-tool-panel button.mtp-pp-key:disabled { opacity: .55; cursor: default; }
.mtp-pp-keyname { font-size: 17px; font-weight: 700; }
.mtp-pp-keykbd { font-size: 11px; opacity: .7; }
.mtp-pp-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.mtp-pp-h { margin: 0 0 12px; }
.mtp-pp-score { display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; }
.mtp-pp-big { margin: 0; font-size: clamp(64px, 12vw, 104px); line-height: 1; font-weight: 600; color: var(--mtp-brass-bright); font-family: "Cormorant Garamond", "Source Sans 3", serif; }
.mtp-pp-big small { font-size: 22px; color: var(--mtp-muted); margin-left: 6px; font-family: inherit; }
.mtp-pp-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 0; flex: 1 1 360px; }
.mtp-pp-stats > div { padding: 10px 12px; border: 1px solid var(--mtp-line); background: var(--mtp-night); min-width: 0; }
.mtp-pp-stats dt { color: var(--mtp-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.mtp-pp-stats dd { margin: 4px 0 0; font-size: 18px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.mtp-pp-band { margin: 18px 0 6px; max-width: 72ch; }
.mtp-pp-result h3 { margin: 22px 0 8px; font-size: 16px; }
.mtp-pp-tablewrap { overflow-x: auto; }
.mtp-pp-table { border-collapse: collapse; width: 100%; font-size: 14px; font-variant-numeric: tabular-nums; }
.mtp-pp-table th, .mtp-pp-table td { text-align: left; padding: 5px 10px; border-bottom: 1px solid var(--mtp-line); white-space: nowrap; }
.mtp-pp-table thead th { color: var(--mtp-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.mtp-pp-table tbody th { color: var(--mtp-brass-bright); font-weight: 700; }
.mtp-pp-details { margin: 16px 0; }
.mtp-pp-details summary { cursor: pointer; min-height: 40px; display: flex; align-items: center; }
.mtp-pp [hidden] { display: none !important; }
@media (max-width: 640px) {
  .mtp-pp-keys-inner { height: 170px; }
  .mtp-pp-keyname { font-size: 14px; }
}
@media print {
  body:has(.mtp-pp) { background: #fff !important; color: #000 !important; }
  body:has(.mtp-pp) .mtp-topnav, body:has(.mtp-pp) nav, body:has(.mtp-pp) footer, body:has(.mtp-pp) .mtp-footer { display: none !important; }
  body:has(.mtp-pp) .mtp-pp, body:has(.mtp-pp) .mtp-pp * { background: #fff !important; color: #000 !important; border-color: #888 !important; }
  .mtp-pp-setup, .mtp-pp-run, .mtp-pp-actions { display: none !important; }
}
