:root{color:#1f2528;background:#f2f4f1;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button{border:1px solid #1f2528;border-radius:6px;background:#1f2528;color:#fff;cursor:pointer;font:inherit;min-height:34px;padding:0 14px}button:hover{background:#3a4645}button:disabled,button:disabled:hover{background:#dfe4e1;border-color:#c7cfca;color:#7a8580;cursor:default}.app-shell{margin:0 auto;max-width:1180px;padding:16px 20px 24px}.app-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.product-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.grading-actions{display:flex;gap:8px;flex-shrink:0}.grading-workspace-active{align-items:start;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 320px}.grading-workspace>.panel{margin-top:10px}.feedback-panel{max-height:620px;overflow-y:auto}.feedback-score{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:12px}.feedback-score strong{color:#1f5f75;font-size:28px}.grading-breakdown{display:grid;gap:9px;margin:0 0 14px}.grading-category-heading{display:flex;justify-content:space-between}.grading-category{border:1px solid #e1e7e1;border-radius:7px;padding:9px}.grading-subcategories{color:#64706b;display:grid;font-size:11px;gap:2px;margin-top:5px}.grading-category-deductions{margin-top:8px}.grading-no-deduction{color:#1f6b4d;display:block;margin-top:6px}.feedback-list{display:grid;gap:8px}.feedback-item{align-items:flex-start;background:#fff;color:#1f2528;display:flex;flex-direction:column;gap:3px;height:auto;padding:10px;text-align:left}.feedback-item:hover{background:#f7faf8}.feedback-error{border-left:4px solid #b42318}.feedback-warning{border-left:4px solid #d97706}.feedback-suggestion{border-left:4px solid #2563eb}.feedback-item small{color:#52605b;white-space:normal}.product-header h1{color:#172326;font-size:30px;letter-spacing:0;line-height:1.1;margin:0;min-width:0}.header-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.migration-banner{align-items:center;background:#fff7e6;border:1px solid #e6c36a;border-radius:8px;color:#55400d;display:flex;gap:12px;justify-content:space-between;margin-top:16px;padding:12px 14px}.app-header h1,.panel h2,.panel h3,.app-header p{margin:0}.app-header h1{font-size:32px;line-height:1.15}.app-header p,.muted,.panel-heading span{color:#64706b}.app-header p{margin-top:6px}.panel{background:#fff;border:1px solid #d8ded8;border-radius:8px;margin-top:10px;padding:12px}.panel-heading{align-items:baseline;display:flex;gap:14px;justify-content:space-between;margin-bottom:10px}.panel h2{font-size:18px}.panel h3{font-size:15px;margin-bottom:8px}.voice-summary-grid,.debug-columns,.input-grid,.current-slice-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.input-grid{align-items:end;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:10px}.input-grid label,.slice-picker{color:#52605b;display:flex;flex-direction:column;font-size:12px;font-weight:700;gap:6px;text-transform:uppercase}select{background:#fff;border:1px solid #cfd9d2;border-radius:6px;color:#1f2528;font:inherit;min-height:34px;padding:0 10px}.insert-controls{align-items:center;display:flex;gap:10px;justify-content:flex-end}.voice-button-group{display:grid;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}.voice-button{background:#fff;border-color:#cfd9d2;color:#1f2528;font-weight:700;min-height:34px;padding:0 8px}.voice-button:hover{background:#eef5f7}.voice-button-active,.voice-button-active:hover{background:#1f5f75;border-color:#17495a;color:#fff}.measure-count-control{align-items:center;display:grid;gap:6px;grid-template-columns:34px minmax(38px,1fr) 34px}.measure-count-control span{align-items:center;border:1px solid #cfd9d2;border-radius:6px;color:#1f2528;display:flex;justify-content:center;min-height:34px}.stepper-button{min-height:34px;padding:0}.insert-controls span{color:#64706b;font-size:13px}.input-status{color:#52605b;font-size:13px;margin:0}.active-event-list{border:1px solid #e4e9e3;border-radius:6px;margin-top:14px;padding:12px}.debug-columns{margin-top:16px}.voice-summary{border:1px solid #e4e9e3;border-radius:6px;padding:12px}.note-line{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.note-line span{background:#eef5f7;border:1px solid #d3e3e8;border-radius:6px;color:#23363c;font-size:13px;padding:3px 7px}.status-ok{color:#1f6b4d;margin:0}.status-error{color:#9a3412;margin:10px 0 0}.issue-list{margin:0;padding-left:18px}.timeline{display:grid;gap:10px 12px;grid-template-columns:104px minmax(640px,1fr);overflow-x:auto;padding-bottom:4px}.timeline-axis,.timeline-track{min-width:640px;position:relative}.timeline-axis{height:28px}.timeline-row{display:contents}.timeline-label{align-items:center;display:flex;gap:8px;min-height:54px}.timeline-label span{color:#64706b;font-size:12px}.active-voice-label strong{color:#1f5f75}.timeline-track{background:linear-gradient(to right,rgba(43,78,84,.08) 1px,transparent 1px),#fbfcfb;border:1px solid #dbe3dd;border-radius:6px;cursor:crosshair;height:54px}.active-voice-track{border-color:#1f5f75;box-shadow:inset 0 0 0 1px #1f5f753d}.axis-tick{color:#64706b;font-size:12px;position:absolute;top:4px;transform:translate(-1px)}.grid-line,.slice-line,.timeline-current-line{bottom:0;position:absolute;top:0;width:1px}.grid-line{background:#cdd7d1}.slice-line{background:#bf683f57}.timeline-current-line{background:#d73a31;width:2px;z-index:2}.note-block{align-items:center;background:#2f6f73;border:1px solid #245a5d;border-radius:6px;color:#fff;display:flex;flex-direction:column;gap:2px;justify-content:center;min-width:44px;overflow:hidden;padding:4px;position:absolute;top:7px;bottom:7px;white-space:nowrap;z-index:1}.note-block small{color:#dceeed;font-size:11px}.rest-block{background:#6b7280;border-color:#4b5563}.table-wrap{overflow-x:auto}.slice-picker{max-width:240px}.current-slice-grid{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:14px}.current-slice-grid div{border:1px solid #e4e9e3;border-radius:6px;padding:12px}.current-slice-grid .active-slice-voice{border-color:#1f5f75;box-shadow:inset 0 0 0 1px #1f5f753d}.current-slice-grid strong,.current-slice-grid span{display:block}.current-slice-grid span{font-size:18px;margin-top:5px}table{border-collapse:collapse;min-width:620px;width:100%}th,td{border-bottom:1px solid #e1e7e1;padding:10px 12px;text-align:left}th{color:#52605b;font-size:12px;text-transform:uppercase}td{font-variant-numeric:tabular-nums}.staff-scroll{overflow-x:auto;overflow-y:hidden}.staff-svg{display:block;height:auto;max-width:none}.staff-line{stroke:#20282a;stroke-width:1}.staff-label{fill:#52605b;font-size:13px;font-weight:700}.beat-guide{display:none;stroke:#2f6f732e;stroke-width:1}.measure-guide{stroke:#1f2528d1;stroke-width:1.1}.final-barline-heavy{stroke:#1f2528e6;stroke-width:3.2}.current-tick-guide{stroke:#d73a31;stroke-width:2}.note-stem{stroke-linecap:round;stroke-width:1.5}.note-flag{stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.note-beam{stroke-linecap:butt;stroke-width:5}.ledger-line{stroke:#20282a;stroke-linecap:round;stroke-width:1.2}.rest-glyph{fill:#20282a;stroke:#20282a;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.accidental-glyph{fill:#20282a;font-family:Georgia,Times New Roman,serif;font-size:15px;font-weight:700;text-anchor:middle}.key-signature-accidental{fill:#20282a;font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:700;text-anchor:middle}.grand-staff-brace{fill:none;stroke:#20282a;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.grand-staff-connector{stroke:#20282a;stroke-width:1.2}.clef{fill:#20282a;font-family:Noto Music,Segoe UI Symbol,Bravura,Georgia,serif;font-size:44px;line-height:1}.bass-clef{font-size:34px}.time-signature text{fill:#20282a;font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:700;text-anchor:middle}.chord-roman{fill:#374151;font-family:Georgia,Times New Roman,serif;font-size:15px;font-weight:700;text-anchor:middle}.ghost-event{opacity:.42;pointer-events:none}.selected-event-highlight{fill:#f59e0b33;pointer-events:none;stroke:#d97706;stroke-width:1.5}.grading-error-highlight{fill:#dc26260f;pointer-events:none;stroke:#dc2626;stroke-width:2}.grading-parallel-line{pointer-events:none;stroke:#dc2626;stroke-width:3}.clear-score-button{align-self:end;grid-column:4;justify-self:end;min-height:38px;padding:0 14px}@media(max-width:720px){.app-header,.panel-heading{align-items:flex-start;flex-direction:column}.voice-summary-grid,.debug-columns,.input-grid,.current-slice-grid{grid-template-columns:1fr}.clear-score-button{grid-column:auto;justify-self:stretch}.migration-banner{align-items:flex-start;flex-direction:column}.grading-workspace-active{display:block}}
