.mrpd-app{
  --bg:#0b0d10;--panel:#11151a;--panel2:#171c22;--line:#2c333d;--text:#f5f7fa;--muted:#aab3bf;
  --gold:#d5b36a;--gold2:#f0d99d;--danger:#ef6b6b;--ok:#5fc38b;--paper:#f7f4ec;--ink:#151515;
  max-width:1180px;margin:24px auto;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);background:var(--bg);border:1px solid #20262e;border-radius:24px;overflow:hidden;
  box-shadow:0 24px 80px rgba(0,0,0,.22)
}
.mrpd-app *{box-sizing:border-box}
.mrpd-hero{padding:28px 30px;display:flex;justify-content:space-between;gap:24px;align-items:center;background:linear-gradient(135deg,#12171d,#0a0c0f)}
.mrpd-eyebrow{font-size:11px;letter-spacing:.18em;color:var(--gold);font-weight:800}
.mrpd-hero h2{font-size:34px;line-height:1.08;margin:7px 0 7px}.mrpd-hero p{margin:0;color:var(--muted)}
.mrpd-score-card{min-width:155px;padding:16px 18px;border:1px solid #343c46;border-radius:16px;background:#11161b;text-align:right}
.mrpd-score-card span,.mrpd-score-card small{display:block;color:var(--muted);font-size:11px}.mrpd-score-card strong{display:block;font-size:30px;color:var(--gold2)}
.mrpd-official-note{margin:0;padding:12px 30px;background:#151a20;border-top:1px solid #242b34;border-bottom:1px solid #242b34;font-size:13px;color:#d7dde5}
.mrpd-official-note span{display:block;color:#8f9aa7;margin-top:3px;font-size:11px}
.mrpd-controls-top{padding:20px 30px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:end}
.mrpd-segmented{display:flex;background:#151a20;border:1px solid #29313a;border-radius:12px;padding:4px}
.mrpd-segmented button,.mrpd-entry-toolbar button,.mrpd-study-listen button,.mrpd-actions button,.mrpd-result button,.mrpd-icon-btn,.mrpd-generate-btn{
  border:1px solid transparent;background:transparent;color:#d8dee7;padding:9px 12px;border-radius:9px;cursor:pointer;font-weight:650
}
.mrpd-segmented button.is-active,.mrpd-entry-toolbar button.is-active{background:#2a2418;color:var(--gold2);border-color:#574729}
.mrpd-timer{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #333b45;border-radius:12px;background:#11161b;flex-wrap:wrap}
.mrpd-timer-display{min-width:78px;font-variant-numeric:tabular-nums;font-size:22px;line-height:1;font-weight:800;letter-spacing:.05em;color:var(--gold2)}
.mrpd-timer-actions{display:flex;gap:5px}.mrpd-timer-actions button{border:1px solid #333b45;background:#171d24;color:#d8dee7;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:11px;font-weight:700}
.mrpd-timer small{flex-basis:100%;font-size:9px;color:#7f8b98;letter-spacing:.05em;text-transform:uppercase}
.mrpd-select-wrap{display:flex;gap:8px;align-items:end}.mrpd-select-wrap label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.mrpd-select-wrap select{min-width:250px;max-width:520px;background:#13181e;color:#eef1f5;border:1px solid #333b45;border-radius:10px;padding:10px 12px}.mrpd-generator-controls label:first-child select{min-width:145px}
.mrpd-icon-btn{border-color:#333b45!important;background:#151a20!important;font-size:18px}.mrpd-generate-btn{border-color:#6b572d!important;background:linear-gradient(135deg,#241f15,#17140e)!important;color:var(--gold2)!important;white-space:nowrap;padding:10px 13px!important}
.mrpd-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#2a3038;border-top:1px solid #2a3038;border-bottom:1px solid #2a3038}
.mrpd-meta>div{background:#11151a;padding:13px 18px}.mrpd-meta span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.mrpd-meta strong{display:block;margin-top:3px}
.mrpd-listen-panel{margin:24px 30px 0;padding:18px;background:#13181e;border:1px solid #2a323c;border-radius:16px}
.mrpd-listen-title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:12px}.mrpd-listen-title strong{display:block}.mrpd-listen-title span{font-size:12px;color:var(--muted)}
.mrpd-counter{font-variant-numeric:tabular-nums;background:#211f18;color:var(--gold2);border:1px solid #4d4228;border-radius:9px;padding:6px 9px;font-size:12px}
.mrpd-study-listen{display:flex;gap:8px;flex-wrap:wrap}.mrpd-study-listen button{background:#1b222a;border-color:#333d48}
.mrpd-study-listen button.is-playing{background:#3a3120;border-color:#725d2e;color:var(--gold2)}
.mrpd-exam-start{text-align:center}.mrpd-exam-start p{font-size:11px;color:var(--muted);margin:9px 0 0}
.mrpd-primary{background:linear-gradient(135deg,#b79248,#e0c579)!important;color:#15120b!important;border-color:#d7bc78!important}
.mrpd-entry-toolbar{margin:16px 30px;padding:14px 16px;background:#101419;border:1px solid #262e37;border-radius:14px}
.mrpd-toolbar-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:4px 0}.mrpd-entry-toolbar button{background:#171d24;border-color:#303944;padding:7px 10px;font-size:12px}
.mrpd-tool-label{width:66px;font-size:11px;color:var(--muted);font-weight:700}.mrpd-toolbar-spacer{flex:1}.mrpd-entry-help{margin:9px 0 0 72px;color:#7f8b98;font-size:11px}
.mrpd-paper{margin:18px 30px 0;background:var(--paper);color:var(--ink);border-radius:12px;padding:24px;box-shadow:inset 0 0 0 1px #ded8ca}
.mrpd-paper-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid #bdb8ad;padding-bottom:12px;margin-bottom:6px}
.mrpd-paper-head span{display:block;font-size:11px}.mrpd-paper-head strong{font-size:17px}.mrpd-paper-head b{font-size:12px}
.mrpd-staff-wrap{display:grid;gap:0}
.mrpd-staff{display:block;width:100%;height:auto;overflow:visible;touch-action:manipulation;cursor:crosshair}
.mrpd-staff .staffline,.mrpd-staff .ledger{stroke:#141414;stroke-width:1.3}.mrpd-staff .barline{stroke:#161616;stroke-width:1.7}.mrpd-staff .clef{font-family:"Noto Music","Bravura Text","Segoe UI Symbol",serif;fill:#111}
.mrpd-staff .timesig{font-family:Georgia,serif;font-size:27px;font-weight:700;fill:#111}.mrpd-staff .keysig,.mrpd-staff .accidental,.mrpd-staff .rest,.mrpd-staff .flag{font-family:"Noto Music","Bravura Text","Segoe UI Symbol",serif;fill:#111}
.mrpd-staff .measure-no{font-size:13px;font-style:italic;font-family:Georgia,serif;fill:#222}
.mrpd-staff .note{fill:#111;stroke:#111;stroke-width:1.4}.mrpd-staff .note.hollow{fill:var(--paper);stroke-width:2}.mrpd-staff .anchor-note{fill:#4d6d92;stroke:#263f5a}.mrpd-staff .anchor-note.hollow{fill:var(--paper);stroke:#4d6d92}
.mrpd-staff .stem{stroke:#111;stroke-width:1.6}.mrpd-staff .beam{stroke:#111;stroke-width:5;stroke-linecap:butt}.mrpd-staff .beam.secondary{stroke-width:4}.mrpd-staff .flag-path{fill:none;stroke:#111;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.mrpd-staff .dot{fill:#111}.mrpd-staff .anchor-label{fill:#4d6d92;font-size:7px;font-weight:800;letter-spacing:.08em}
.mrpd-staff .cursor{stroke:#c8a455;stroke-width:2;stroke-dasharray:4 4;opacity:.8}
.mrpd-actions{display:flex;justify-content:flex-end;gap:9px;padding:18px 30px}.mrpd-actions button,.mrpd-result button{background:#171d24;border-color:#303944}
.mrpd-result{margin:0 30px 28px;padding:22px;border:1px solid #2d3640;background:#11161b;border-radius:18px}
.mrpd-result-score{display:flex;align-items:baseline;gap:8px;border-bottom:1px solid #28303a;padding-bottom:14px}.mrpd-result-score span{color:var(--muted)}.mrpd-result-score strong{margin-left:auto;font-size:36px;color:var(--gold2)}.mrpd-result-score small{color:var(--muted)}
.mrpd-result-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}.mrpd-result-bars>div{display:grid;grid-template-columns:1fr auto;gap:6px}.mrpd-result-bars span{font-size:12px;color:#ced5dd}.mrpd-result-bars b{font-size:12px}.mrpd-result-bars i{grid-column:1/-1;height:7px;background:#242c35;border-radius:99px;overflow:hidden}.mrpd-result-bars em{display:block;height:100%;background:linear-gradient(90deg,#947a41,#e0c579);border-radius:99px}
.mrpd-feedback{margin:18px 0;color:#d4dbe4}.mrpd-feedback p{margin:5px 0;font-size:13px}
.mrpd-solution{margin-top:16px;background:var(--paper);color:var(--ink);border-radius:12px;padding:12px}.mrpd-solution-title{font-weight:800;margin:5px 10px}.mrpd-harmonic-logic{margin:8px 10px 14px;padding:12px 14px;border:1px solid #d2c9b7;border-radius:10px;background:#fffdf8}.mrpd-harmonic-logic strong,.mrpd-harmonic-logic span,.mrpd-harmonic-logic small{display:block}.mrpd-harmonic-logic strong{font-size:12px}.mrpd-harmonic-logic span{font-family:Georgia,serif;font-size:16px;margin-top:4px}.mrpd-harmonic-logic small{font-size:11px;color:#665f55;margin-top:3px}
.mrpd-footer-note{padding:14px 30px 24px;color:#737e8a;font-size:10px;text-align:center}
.mrpd-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,16px);background:#242b33;color:#fff;border:1px solid #3c4651;border-radius:10px;padding:10px 14px;opacity:0;pointer-events:none;transition:.2s;z-index:99999}.mrpd-toast.show{opacity:1;transform:translate(-50%,0)}
.mrpd-app button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){
  .mrpd-app{margin:8px;border-radius:16px}.mrpd-hero{padding:20px;align-items:flex-start}.mrpd-hero h2{font-size:26px}.mrpd-score-card{min-width:120px;padding:12px}.mrpd-score-card strong{font-size:24px}
  .mrpd-official-note,.mrpd-controls-top,.mrpd-actions,.mrpd-footer-note{padding-left:16px;padding-right:16px}.mrpd-controls-top{align-items:stretch}.mrpd-segmented{width:100%}.mrpd-segmented button{flex:1;padding:8px 6px;font-size:12px}
  .mrpd-select-wrap{width:100%}.mrpd-select-wrap label{flex:1}.mrpd-select-wrap select{min-width:0;width:100%}
  .mrpd-meta{grid-template-columns:repeat(2,1fr)}.mrpd-listen-panel,.mrpd-entry-toolbar,.mrpd-paper,.mrpd-result{margin-left:12px;margin-right:12px}
  .mrpd-entry-toolbar{padding:10px}.mrpd-tool-label{width:100%;margin-top:4px}.mrpd-entry-help{margin-left:0}.mrpd-paper{padding:9px 6px}.mrpd-paper-head{padding:8px}
  .mrpd-paper-head strong{font-size:13px}.mrpd-staff{min-width:680px}.mrpd-staff-wrap{overflow-x:auto}.mrpd-result-bars{grid-template-columns:1fr}.mrpd-actions{flex-wrap:wrap}.mrpd-actions button{flex:1 1 auto}
}

/* v1.3.4 — editable tempo + visual correction */
.mrpd-tempo-control{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}
.mrpd-tempo-control button{width:30px;height:30px;border:1px solid #39434f;background:#171d24;color:#eef2f6;border-radius:8px;cursor:pointer;font-size:18px;line-height:1;font-weight:800}
.mrpd-tempo-control input{width:74px;height:30px;border:1px solid #39434f;background:#0e1318;color:#fff;border-radius:8px;padding:4px 8px;font-weight:800;font-variant-numeric:tabular-nums}
.mrpd-tempo-control strong{margin:0!important;min-width:72px;color:var(--gold2);font-size:12px}
.mrpd-tempo-control input::-webkit-inner-spin-button,.mrpd-tempo-control input::-webkit-outer-spin-button{opacity:1}

.mrpd-correction{margin:18px 0 16px}
.mrpd-correction-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:8px}
.mrpd-correction-head strong{display:block;font-size:14px;color:#f1f4f7}
.mrpd-correction-head span{display:block;margin-top:4px;font-size:11px;color:#98a4b0}
.mrpd-correction-paper{background:var(--paper);color:var(--ink);border-radius:12px;padding:10px 12px;overflow-x:auto}
.mrpd-correction-paper .mrpd-staff{min-width:680px}
.mrpd-measure-review{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.mrpd-measure-review>div{padding:9px 10px;border-radius:9px;background:#141a20;border:1px solid #2b343e;display:flex;justify-content:space-between;gap:8px;align-items:center}
.mrpd-measure-review>div strong{font-size:11px;color:#dce3ea}.mrpd-measure-review>div span{font-size:10px;color:#9ca7b3;text-align:right}
.mrpd-measure-review>div.is-clean{border-color:rgba(95,195,139,.45);background:rgba(95,195,139,.07)}
.mrpd-measure-review>div.has-errors{border-color:rgba(239,107,107,.38);background:rgba(239,107,107,.06)}

.mrpd-correction-paper .mrpd-staff .note.status-correct{fill:#2e9e62;stroke:#176b40}
.mrpd-correction-paper .mrpd-staff .note.status-correct.hollow{fill:var(--paper);stroke:#2e9e62}
.mrpd-correction-paper .mrpd-staff .note.status-wrong{fill:#d84f4f;stroke:#8f2626}
.mrpd-correction-paper .mrpd-staff .note.status-wrong.hollow{fill:var(--paper);stroke:#d84f4f}
.mrpd-correction-paper .mrpd-staff .note.status-rhythm{fill:#df9a38;stroke:#9b6117}
.mrpd-correction-paper .mrpd-staff .note.status-rhythm.hollow{fill:var(--paper);stroke:#df9a38}
.mrpd-correction-paper .mrpd-staff .note.status-pitch{fill:#8f6bda;stroke:#5f3aa9}
.mrpd-correction-paper .mrpd-staff .note.status-pitch.hollow{fill:var(--paper);stroke:#8f6bda}
.mrpd-correction-paper .mrpd-staff .note.status-given{fill:#4d6d92;stroke:#263f5a}
.mrpd-correction-paper .mrpd-staff .rest.status-correct{fill:#2e9e62}.mrpd-correction-paper .mrpd-staff .rest.status-wrong{fill:#d84f4f}.mrpd-correction-paper .mrpd-staff .rest.status-rhythm{fill:#df9a38}.mrpd-correction-paper .mrpd-staff .rest.status-pitch{fill:#8f6bda}.mrpd-correction-paper .mrpd-staff .rest.status-given{fill:#4d6d92}
.mrpd-correction-paper .mrpd-staff .dot.status-correct{fill:#2e9e62}.mrpd-correction-paper .mrpd-staff .dot.status-wrong{fill:#d84f4f}.mrpd-correction-paper .mrpd-staff .dot.status-rhythm{fill:#df9a38}.mrpd-correction-paper .mrpd-staff .dot.status-pitch{fill:#8f6bda}.mrpd-correction-paper .mrpd-staff .dot.status-given{fill:#4d6d92}

@media(max-width:760px){
  .mrpd-tempo-control{gap:4px}.mrpd-tempo-control input{width:66px}.mrpd-measure-review{grid-template-columns:1fr}
}

/* v1.4 · Auditory training levels */
.mrpd-ear-nav{display:flex;align-items:end;justify-content:space-between;gap:22px;padding:18px 30px;background:#0d1116;border-bottom:1px solid #252c35}
.mrpd-ear-nav>div{display:grid;gap:3px}.mrpd-ear-nav-kicker{font-size:10px;font-weight:800;letter-spacing:.14em;color:var(--gold)}
.mrpd-ear-nav strong{font-size:18px}.mrpd-ear-nav small{color:var(--muted);font-size:11px;max-width:720px}
.mrpd-ear-nav label{display:flex;flex-direction:column;gap:5px;min-width:390px;color:var(--muted);font-size:11px}
.mrpd-ear-nav select{width:100%;background:#151a20;color:#f0f3f6;border:1px solid #35404b;border-radius:11px;padding:11px 13px;font-weight:700}
.mrpd-ear-module{padding:24px 30px 30px;background:#0b0d10}
.mrpd-ear-card{border:1px solid #2d3641;background:#11161c;border-radius:18px;padding:22px;box-shadow:0 18px 45px rgba(0,0,0,.13)}
.mrpd-ear-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:16px;border-bottom:1px solid #29323c}
.mrpd-ear-head [data-ear-badge]{display:inline-block;color:var(--gold);font-size:10px;font-weight:850;letter-spacing:.11em;margin-bottom:5px}
.mrpd-ear-head h3{margin:0 0 6px;font-size:25px}.mrpd-ear-head p{margin:0;color:var(--muted);font-size:13px;max-width:780px}
.mrpd-ear-stats{min-width:125px;text-align:right}.mrpd-ear-stats span,.mrpd-ear-stats small{display:block;color:var(--muted);font-size:10px}.mrpd-ear-stats strong{display:block;color:var(--gold2);font-size:24px;margin:2px 0}
.mrpd-ear-prompt{margin:18px 0 12px;padding:14px 16px;background:#161c23;border-left:3px solid var(--gold);border-radius:8px;font-weight:700;color:#e8edf2}
.mrpd-ear-listen-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:18px}.mrpd-ear-listen-row button,.mrpd-ear-actions button{border:1px solid #35404c;background:#182029;color:#e8edf2;border-radius:10px;padding:10px 13px;font-weight:750;cursor:pointer}
.mrpd-ear-listen-row button.is-playing{box-shadow:0 0 0 2px rgba(213,179,106,.18);border-color:#78622f}.mrpd-ear-listen-row span{color:var(--muted);font-size:11px;margin-left:4px}
.mrpd-ear-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mrpd-ear-option{display:flex;align-items:center;gap:10px;border:1px solid #313b46;background:#151b22;border-radius:11px;padding:12px 13px;cursor:pointer;transition:.15s}.mrpd-ear-option:hover{border-color:#526171;background:#18212a}.mrpd-ear-option input{accent-color:#d5b36a}.mrpd-ear-option span{font-weight:650}.mrpd-ear-option.is-correct{border-color:#347b59;background:#13231c}.mrpd-ear-option.is-wrong{border-color:#8c4141;background:#281818}
.mrpd-ear-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.mrpd-ear-feedback{margin-top:16px;padding:13px 15px;border-radius:11px;display:flex;flex-wrap:wrap;gap:6px 13px;align-items:center;font-size:13px}.mrpd-ear-feedback strong{font-size:15px}.mrpd-ear-feedback.is-correct{background:#12271d;border:1px solid #347b59;color:#dff6e8}.mrpd-ear-feedback.is-wrong{background:#2b1919;border:1px solid #8c4141;color:#f8dddd}
.mrpd-ear-official{margin-top:18px;padding-top:12px;border-top:1px dashed #34404b;color:#8895a3;font-size:11px;line-height:1.55}
.mrpd-progression-mode{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:12px}.mrpd-progression-mode strong{margin-right:4px}.mrpd-progression-mode label{display:flex;gap:7px;align-items:center;border:1px solid #35404b;border-radius:9px;padding:8px 10px;background:#151b22;cursor:pointer}.mrpd-progression-mode input{accent-color:#d5b36a}
.mrpd-progression-row{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:8px}.mrpd-progression-cell{display:grid;gap:5px;background:#151b22;border:1px solid #313b46;border-radius:10px;padding:9px}.mrpd-progression-cell>span{font-size:10px;color:var(--muted)}.mrpd-progression-cell b{font-size:16px;color:var(--gold2)}.mrpd-progression-cell select{width:100%;background:#0f1419;color:#f3f5f7;border:1px solid #38434f;border-radius:8px;padding:8px}
.mrpd-prog-feedback{display:flex;gap:6px;flex-wrap:wrap;width:100%;margin-top:5px}.mrpd-prog-feedback span{background:rgba(255,255,255,.05);padding:4px 7px;border-radius:6px}.mrpd-prog-feedback .ok{color:#a8ebc5}.mrpd-prog-feedback .bad{color:#ffb0b0}
@media(max-width:760px){.mrpd-ear-nav{padding:15px 16px;align-items:stretch;flex-direction:column}.mrpd-ear-nav label{min-width:0}.mrpd-ear-module{padding:15px 12px 22px}.mrpd-ear-head{flex-direction:column}.mrpd-ear-stats{text-align:left}.mrpd-ear-options{grid-template-columns:1fr}.mrpd-progression-row{grid-template-columns:repeat(2,minmax(0,1fr))}.mrpd-ear-actions button{flex:1}}

.mrpd-ear-note{display:block;margin-top:7px;color:#9ba6b2;font-size:11px;line-height:1.45}

/* ===== v2.0 full-exam modules ===== */
.mrpd-written-module,.mrpd-harmony-module,.mrpd-full-module{margin:22px 30px 28px}
.mrpd-written-module .mrpd-ear-card,.mrpd-harmony-module,.mrpd-full-module{background:#11161b;border:1px solid #2d3640;border-radius:18px;padding:22px}
.mrpd-written-prompt{margin:14px 0;color:#d7dde5;font-weight:700}
.mrpd-written-staff{background:var(--paper);border-radius:12px;padding:8px;overflow:auto;color:#111}
.mrpd-mini-staff{display:block;width:100%;min-width:720px;height:auto}.mrpd-mini-staff line{stroke:#111;stroke-width:1.5}.mrpd-mini-staff .mini-clef{font-family:"Noto Music","Segoe UI Symbol",serif;font-size:62px}.mrpd-mini-staff .mini-note{fill:#111;stroke:#111}.mrpd-mini-staff .mini-note.fixed{fill:#52779f;stroke:#2e506e}.mrpd-mini-staff .mini-stem{stroke:#111;stroke-width:1.8}.mrpd-mini-staff .mini-acc{font-size:25px}.mrpd-mini-staff .mini-fixed{font-size:9px;fill:#52779f;font-weight:800}.mrpd-mini-staff .mini-help{font-size:11px;fill:#6c665c}
.mrpd-written-tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:14px 0}.mrpd-written-tools button{background:#171d24;color:#e6ebf1;border:1px solid #303944;border-radius:8px;padding:8px 11px;cursor:pointer}.mrpd-written-tools button.is-active{background:#342a17;color:#f1d58e;border-color:#6a5427}.mrpd-written-label{display:flex;gap:10px;align-items:center;color:#aab3bf;margin:12px 0}.mrpd-written-label select{flex:1;background:#151b22;color:#fff;border:1px solid #35404b;border-radius:9px;padding:10px}
.mrpd-harmony-head,.mrpd-full-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid #28303a;padding-bottom:15px}.mrpd-harmony-head span,.mrpd-full-head>div>span{font-size:11px;color:var(--gold);letter-spacing:.12em;font-weight:800}.mrpd-harmony-head h3,.mrpd-full-head h3{margin:4px 0;font-size:25px}.mrpd-harmony-head p,.mrpd-full-head p{margin:0;color:var(--muted)}.mrpd-harmony-score{min-width:190px;text-align:right}.mrpd-harmony-score span{display:block;color:var(--muted);font-size:11px}.mrpd-harmony-score strong{display:block;font-size:28px;color:var(--gold2)}
.mrpd-harmony-task{margin:16px 0;padding:13px 15px;background:#171d24;border-left:3px solid var(--gold);border-radius:8px;color:#e4e9ef}
.mrpd-harmony-canvas{background:var(--paper);border-radius:12px;padding:8px;margin-bottom:16px;overflow:auto}.mrpd-grand-staff{display:block;width:100%;min-width:850px}.mrpd-grand-staff>line{stroke:#111;stroke-width:1.2}.mrpd-grand-staff .grand-clef,.mrpd-grand-staff .grand-bass-clef{fill:#111;font-family:"Noto Music","Segoe UI Symbol",serif;font-size:52px}.mrpd-grand-staff .grand-note{fill:#111;stroke:#111}.mrpd-grand-staff .grand-note.s{fill:#315d85}.mrpd-grand-staff .grand-note.inner{fill:#111}.mrpd-grand-staff .grand-stem{stroke:#111;stroke-width:1.5}.mrpd-grand-staff .grand-num{fill:#3a3935;font-size:10px}
.mrpd-satb-table{display:grid;gap:5px}.mrpd-satb-table .head,.mrpd-satb-table .row{display:grid;grid-template-columns:38px 68px repeat(3,minmax(88px,1fr)) minmax(130px,1.3fr) minmax(120px,1.2fr);gap:6px;align-items:center}.mrpd-satb-table .head{color:#9da8b4;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.mrpd-satb-table .row{padding:7px;background:#151b21;border:1px solid #28313b;border-radius:9px}.mrpd-satb-table select,.mrpd-analysis-grid select,.mrpd-analysis-key select{width:100%;background:#0f1419;color:#eef2f6;border:1px solid #35404b;border-radius:7px;padding:7px}.mrpd-satb-table .row>span:first-child{color:var(--gold);font-weight:800}.mrpd-harmony-note{font-size:11px;color:#86919e;margin-top:15px;border-top:1px solid #29313a;padding-top:12px}
.mrpd-analysis-key{max-width:420px;margin-bottom:14px}.mrpd-analysis-key label{display:flex;gap:10px;align-items:center}.mrpd-analysis-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mrpd-analysis-grid label{background:#151b21;border:1px solid #2c3540;border-radius:9px;padding:8px;display:flex;gap:6px;align-items:center}.mrpd-analysis-grid label span{color:var(--gold);font-weight:800}
.mrpd-harmony-feedback{margin-top:15px;padding:14px;border-radius:10px;background:#171d24;border:1px solid #35404a}.mrpd-harmony-feedback.is-good{border-color:#32664a}.mrpd-harmony-feedback.is-warn{border-color:#79543a}.mrpd-harmony-feedback.is-solution{border-color:#66572e}.mrpd-solution-table{display:grid;gap:5px;margin-top:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.mrpd-full-head{align-items:center}.mrpd-full-clock{display:grid;grid-template-columns:repeat(3,auto);gap:7px;align-items:center}.mrpd-full-clock strong{grid-column:1/-1;text-align:center;font-size:34px;color:var(--gold2);font-variant-numeric:tabular-nums}.mrpd-full-clock button{background:#171d24;color:#e5ebf2;border:1px solid #35404b;border-radius:8px;padding:8px 10px;cursor:pointer}.mrpd-full-score{margin:18px 0}.mrpd-full-score>span{color:var(--muted);font-size:11px}.mrpd-full-score>strong{float:right;color:var(--gold2)}.mrpd-full-score>div{height:9px;background:#252d36;border-radius:99px;overflow:hidden;clear:both;margin-top:7px}.mrpd-full-score i{display:block;height:100%;background:linear-gradient(90deg,#947a41,#e0c579);border-radius:99px}.mrpd-full-sections{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mrpd-full-sections button{position:relative;text-align:left;background:#151b21;color:#eef2f6;border:1px solid #303a45;border-radius:12px;padding:14px 60px 14px 14px;cursor:pointer}.mrpd-full-sections button:hover{border-color:#6a572f}.mrpd-full-sections button.is-complete{border-color:#3e6b50}.mrpd-full-sections b{display:block;font-size:15px}.mrpd-full-sections span{display:block;color:#9eabb8;font-size:11px;margin-top:3px}.mrpd-full-sections em{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--gold2);font-size:12px}.mrpd-full-note{font-size:11px;color:#818c98;margin:16px 0 0}
@media(max-width:760px){.mrpd-written-module,.mrpd-harmony-module,.mrpd-full-module{margin:12px}.mrpd-harmony-head,.mrpd-full-head{flex-direction:column}.mrpd-harmony-score{text-align:left}.mrpd-satb-table{overflow-x:auto}.mrpd-satb-table .head,.mrpd-satb-table .row{min-width:900px}.mrpd-analysis-grid{grid-template-columns:repeat(2,1fr)}.mrpd-full-sections{grid-template-columns:1fr}.mrpd-full-clock{width:100%}}

/* v2.1 – interactive SATB notation editor */
.mrpd-harmony-notation-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 10px;padding:12px;background:#10151a;border:1px solid #2b343e;border-radius:12px}
.mrpd-harmony-toolgroup{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.mrpd-harmony-toolgroup>span{font-size:10px;color:#8f9aa6;text-transform:uppercase;letter-spacing:.08em;font-weight:800;margin-right:2px}
.mrpd-harmony-toolgroup button{border:1px solid #35404b;background:#171d24;color:#e6ebf1;border-radius:8px;padding:8px 10px;cursor:pointer;font-weight:700}.mrpd-harmony-toolgroup button.is-active{background:#342a17;border-color:#80672f;color:#f1d68f}
.mrpd-harmony-edit-actions{margin-left:auto}.mrpd-harmony-entry-help{font-size:12px;color:#aab3bf;margin:0 0 12px}.mrpd-harmony-entry-help b{color:#f0d99d}
.mrpd-harmony-labels{margin:12px 0}.mrpd-harmony-labels .head,.mrpd-harmony-labels .labels{display:grid;grid-template-columns:repeat(8,minmax(80px,1fr));gap:6px}.mrpd-harmony-labels .head span{text-align:center;color:#9aa5b1;font-size:10px;font-weight:800}.mrpd-harmony-labels label{padding:4px;border-radius:8px}.mrpd-harmony-labels label.has-error{background:rgba(210,78,78,.13);outline:1px solid rgba(220,84,84,.5)}.mrpd-harmony-labels select{width:100%;background:#0f1419;color:#eef2f6;border:1px solid #35404b;border-radius:7px;padding:7px}
.mrpd-harmony-history{margin-top:12px;border:1px solid #2a333d;border-radius:11px;background:#0f1419;overflow:hidden}.mrpd-harmony-history-head{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #252e37}.mrpd-harmony-history-head strong{font-size:12px}.mrpd-harmony-history-head span{font-size:10px;color:#8e99a6}.mrpd-harmony-history-list{display:flex;gap:6px;flex-wrap:wrap;padding:10px}.mrpd-harmony-history-list span{font-size:11px;background:#161d24;border:1px solid #2a3540;border-radius:7px;padding:5px 7px;color:#cdd5de}.mrpd-harmony-history-list span b{color:#d8ba73}.mrpd-harmony-history-list em{font-size:11px;color:#7e8995}
.mrpd-grand-staff-edit{cursor:crosshair;user-select:none}.mrpd-grand-staff .harmony-slot-active{fill:rgba(209,177,106,.10);stroke:rgba(209,177,106,.45);stroke-width:1}.mrpd-grand-staff .harmony-slot-line{stroke:#c8c1b5;stroke-width:.7;stroke-dasharray:3 5}.mrpd-grand-staff .harmony-voice-label{fill:#666058;font-size:9px;font-weight:800;letter-spacing:.08em}.mrpd-grand-staff .harmony-click-help{fill:#6d685f;font-size:9px}.mrpd-grand-staff .grand-num.active{fill:#9b6f15;font-weight:900}.mrpd-grand-staff .grand-ledger{stroke:#111;stroke-width:1.2}.mrpd-grand-staff .grand-acc{fill:#111;font-family:"Noto Music","Segoe UI Symbol",serif;font-size:18px}
.mrpd-grand-staff .harmony-motion{stroke-width:1.15;opacity:.38;pointer-events:none}.mrpd-grand-staff .harmony-motion.voice-s{stroke:#4b7397}.mrpd-grand-staff .harmony-motion.voice-a{stroke:#6a6a64}.mrpd-grand-staff .harmony-motion.voice-t{stroke:#78726b}.mrpd-grand-staff .harmony-motion.voice-b{stroke:#5e5a56}.mrpd-grand-staff .harmony-motion.is-error{stroke:#d33b3b!important;stroke-width:2.5;opacity:.95}
.mrpd-grand-staff .grand-note.is-error{fill:#d63e3e!important;stroke:#8b2020!important;stroke-width:1.8}.mrpd-grand-staff .grand-stem.is-error{stroke:#d63e3e!important;stroke-width:2}.mrpd-grand-staff .grand-note.is-ok{fill:#2e9a62!important;stroke:#17643e!important}.mrpd-grand-staff .grand-stem.is-ok{stroke:#2e9a62!important}.mrpd-grand-staff .grand-note.is-warning{fill:#d29a34!important;stroke:#8a5a08!important}.mrpd-grand-staff .grand-stem.is-warning{stroke:#d29a34!important}
.mrpd-harmony-errors{margin-top:12px;display:grid;gap:6px}.mrpd-harmony-errors h4{margin:0 0 4px;font-size:12px}.mrpd-harmony-error-row{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:start;padding:7px 9px;border-radius:8px;background:#121820;border:1px solid #313943}.mrpd-harmony-error-row b{color:#e4b765}.mrpd-harmony-error-row span{font-size:11px;color:#d4dbe3}
@media(max-width:760px){.mrpd-harmony-edit-actions{margin-left:0;width:100%}.mrpd-harmony-labels{overflow-x:auto}.mrpd-harmony-labels .head,.mrpd-harmony-labels .labels{min-width:720px}}
.mrpd-grand-staff .grand-keysig{fill:#111;font-family:"Noto Music","Segoe UI Symbol",serif;font-size:22px}.mrpd-grand-staff .grand-timesig{fill:#111;font-family:Georgia,serif;font-size:22px;font-weight:700}

/* v2.1.1 — staff-first harmony correction / solution */
.mrpd-corr-red{color:#ef6767;font-weight:800}.mrpd-corr-green{color:#55c98a;font-weight:800}.mrpd-corr-gold{color:#ddb85f;font-weight:800}
.mrpd-harmony-solution-sheet{margin-top:14px;background:var(--paper);border-radius:12px;padding:10px;overflow:auto;color:#111;box-shadow:inset 0 0 0 1px #d9d2c2}
.mrpd-grand-staff-solution{min-width:900px}
.mrpd-grand-staff .grand-note.is-solution-note{fill:#161616!important;stroke:#161616!important}
.mrpd-grand-staff .grand-stem.is-solution-note{stroke:#161616!important}
.mrpd-grand-staff .harmony-motion.solution-motion{opacity:.3;stroke-width:1.05}
.mrpd-grand-staff .solution-label{font-weight:800;fill:#1e1e1d;font-size:9px}


/* v2.2.0 — selectable harmony notes + note nudger + SATB shortcuts */
.mrpd-shortcuts-hint{display:inline-block;margin-left:8px;padding:2px 7px;border:1px solid #34404b;border-radius:999px;color:#95a0ac;font-size:10px;font-weight:700;letter-spacing:.04em}
.mrpd-grand-staff-edit .harmony-note-target{cursor:pointer}
.mrpd-grand-staff-edit .harmony-note-target:hover .grand-note{stroke:#b89042;stroke-width:2.2}
.mrpd-grand-staff .grand-note.is-selected{fill:#f0c968!important;stroke:#7d5b16!important;stroke-width:2.6!important}
.mrpd-grand-staff .grand-stem.is-selected{stroke:#c69936!important;stroke-width:2.5!important}
.mrpd-grand-staff .harmony-note-nudger{filter:drop-shadow(0 3px 4px rgba(0,0,0,.24));cursor:default}
.mrpd-grand-staff .harmony-nudger-bg{fill:#111820;stroke:#c59c45;stroke-width:1.2}
.mrpd-grand-staff .harmony-nudge-btn{cursor:pointer}
.mrpd-grand-staff .harmony-nudge-btn rect{fill:#1d2630;stroke:#354351;stroke-width:.8}
.mrpd-grand-staff .harmony-nudge-btn text{fill:#f0d99d;font-size:16px;font-weight:900;pointer-events:none}
.mrpd-grand-staff .harmony-nudge-btn:hover rect{fill:#3a2f19;stroke:#c59c45}
.mrpd-grand-staff .harmony-note-nudger.is-locked{opacity:.55}
.mrpd-grand-staff .harmony-note-nudger.is-locked .harmony-nudge-btn{cursor:not-allowed}

.mrpd-grand-staff .harmony-note-hit{fill:transparent;stroke:none;pointer-events:none}.mrpd-grand-staff-edit .harmony-note-hit{pointer-events:all}
