.own-music{--own-ink:#283d48;--own-green:#126b55;max-width:1100px;min-width:0;margin:0 auto;padding:28px;background:#f8f6ef;border:1px solid #e2e6d9;border-radius:18px;color:var(--own-ink);box-sizing:border-box}.own-music *{box-sizing:border-box}.own-heading{max-width:760px;margin-bottom:26px}.own-eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#6a7d6b}.own-heading h2{font-family:Georgia,serif;font-size:clamp(28px,4vw,40px);font-weight:400;line-height:1.2;margin:12px 0;color:var(--own-ink)}.own-music p{font-size:14px;line-height:1.7;color:#566a60}.own-music h3{font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.3;color:var(--own-ink);margin:0 0 12px}.own-import{padding:24px;background:#fffdf7;border:1px solid #dbe3d5;border-radius:12px}.own-file-label{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:24px 0;color:var(--own-green);font-size:13px;font-weight:600}.own-file-label input{max-width:100%;font:inherit;color:#52685b}.own-file-label input::file-selector-button{padding:11px 14px;margin-right:12px;border:1px solid var(--own-green);border-radius:7px;background:var(--own-green);color:white;cursor:pointer}.own-small{font-size:12px!important;line-height:1.65!important;color:#65786b!important}.own-private{font-size:11px!important;line-height:1.6!important;color:#748071!important;border-top:1px solid #dce4d5;padding-top:17px;margin:24px 0 0}.own-error{padding:14px 16px;margin:16px 0;background:#fff0e4;border:1px solid #e6c9ab;border-radius:8px;color:#864b29;font-size:13px;line-height:1.65}.own-piece{margin:8px 0 22px;overflow-wrap:anywhere}.own-piece h3{margin-bottom:4px}.own-piece>span{font-size:11px;color:#798776}.own-selectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}.own-selectors label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#4c6855;min-width:0}.own-selectors select{width:100%;min-width:0;padding:11px 12px;background:#fffef9;color:#284c39;border:1px solid #ccd9c8;border-radius:7px;font:inherit;font-size:13px}.own-staff-scroll{max-width:100%;min-width:0;overflow-x:auto;background:#fffdf7;border:1px solid #dce4d5;border-radius:9px;scrollbar-color:#9eaf99 #f0f3e9}.own-staff-scroll svg{display:block;max-width:none}.own-actions{display:flex;flex-wrap:wrap;align-items:center;gap:11px;margin:20px 0}.own-primary,.own-secondary,.own-check{font:inherit;font-size:12px;font-weight:600;line-height:1.5;padding:12px 16px;border-radius:8px;cursor:pointer}.own-primary{color:white;background:var(--own-green);border:1px solid var(--own-green)}.own-secondary{color:var(--own-green);background:transparent;border:1px solid #b1c6ad}.own-check{color:#516749;background:#fffdf7;border:1px solid #bdcdb3}.own-check.checked{color:#205137;background:#e3efdf;border-color:#84aa7d}.own-music button:disabled{opacity:.45;cursor:not-allowed}.own-link{font:inherit;font-size:12px;padding:5px 0;border:0;background:none;color:var(--own-green);text-align:left;cursor:pointer}.own-tempo{display:flex;align-items:center;gap:8px;color:#60745c;font-size:11px}.own-tempo input{width:70px;font:inherit;color:#2d543d;background:#fffef9;border:1px solid #c5d4be;border-radius:6px;padding:9px}.own-check-note{padding:15px 16px;border-left:3px solid #84a77b;background:#eef2e6;border-radius:0 8px 8px 0;font-size:12px!important}.own-feedback{min-height:24px;margin:20px 0;color:#2c6242;font-size:14px;line-height:1.65}.own-keyboard{margin:22px 0 8px;padding:16px 0;border-top:1px solid #dce4d5;max-width:100%;overflow-x:auto}.own-keyboard .keyboard{margin-left:auto;margin-right:auto}.own-result{display:flex;gap:26px;align-items:center;margin:28px 0}.own-result>strong{color:var(--own-green);font-family:Georgia,serif;font-size:64px;font-weight:400;white-space:nowrap}.own-result>strong span{font-size:25px}.own-result h3{margin-bottom:6px}.own-result p{margin:0}.own-music button:focus-visible,.own-music input:focus-visible,.own-music select:focus-visible,.own-staff-scroll:focus-visible{outline:3px solid #66a478;outline-offset:3px}@media(max-width:700px){.own-music{padding:18px 14px;border-radius:13px}.own-import{padding:16px}.own-selectors{grid-template-columns:1fr}.own-actions{gap:10px}.own-primary,.own-secondary,.own-check{flex:1 1 auto}.own-result{align-items:flex-start;gap:16px}.own-result>strong{font-size:48px}.own-result h3{font-size:21px}}@media(max-height:500px) and (orientation:landscape){.own-music{padding:14px}.own-heading{margin-bottom:18px}.own-heading h2{font-size:27px}.own-piece{margin:4px 0 12px}.own-keyboard{padding:10px 0;margin:14px 0 6px}}

@media(orientation:landscape) and (max-height:600px){
 .phone-practice .own-music{padding:6px 8px;border-radius:8px}.phone-practice .own-piece{margin:0 0 4px}.phone-practice .own-piece h3{font-size:16px;margin:0}.phone-practice .own-piece>span{display:none}.phone-practice .own-music>.own-small,.phone-practice .own-private,.phone-practice .own-music>.own-actions{display:none}.phone-practice .own-staff-scroll svg{height:100px;width:auto}.phone-practice .own-feedback{font-size:12px;margin:5px 0;min-height:24px}.phone-practice .own-keyboard{margin:4px 0;padding:4px 0}.phone-practice .own-keyboard .keyboard,.phone-practice .own-keyboard .piano-key.white{height:110px}.phone-practice .own-keyboard .piano-key.black{height:70px}.phone-practice.practice-options-open .own-music>.own-actions{display:flex;margin:8px 0}.phone-practice.practice-options-open .own-music>.own-small{display:block}
}
.own-sample{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:23px;margin:0 0 18px;background:#eaf2e5;border:1px solid #c4d8bd;border-radius:12px}.own-sample h3{margin:8px 0}.own-sample p{margin:0;max-width:470px}.own-sample .own-primary{flex-shrink:0;min-height:46px}.own-passage-summary{margin:20px 0}.own-passage-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;background:#dce4d5;border:1px solid #dce4d5;border-radius:9px;overflow:hidden}.own-passage-summary dl>div{min-width:0;background:#f0f4e9;padding:12px 15px}.own-passage-summary dt{font-size:10px;letter-spacing:.3px;color:#63725c;margin-bottom:5px}.own-passage-summary dd{margin:0;color:#2f523b;font-size:13px;font-weight:500;line-height:1.45;overflow-wrap:anywhere}.own-passage-summary dd small{display:block;font-size:10px;font-weight:400;color:#71806a;margin-top:3px}@media(max-width:700px){.own-sample{flex-direction:column;align-items:stretch;gap:15px;padding:17px}.own-sample .own-primary{width:100%}.own-passage-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}.own-passage-summary dl>div{padding:11px 12px}}

/* The passage comes first; editing its scope is a secondary, native disclosure. */
.own-review>.own-piece{margin:0 0 10px}
.own-review>.own-piece h3{font-size:27px;line-height:1.25}
.own-review .own-passage-overview{margin:0 0 14px;color:#4d6754;font-size:12px;line-height:1.65}
.own-passage-overview>span{display:block;color:#687962;font-size:11px}
.own-review>.own-check-note{margin:14px 0 0;padding:11px 13px}
.own-review>.own-actions{margin:13px 0}
.own-review-actions>button{min-height:44px}
.own-passage-options{min-width:0;margin-top:18px;border:1px solid #d4dfcd;border-radius:8px;background:#fffdf7}
.own-passage-options>summary{min-height:48px;padding:12px 14px;cursor:pointer;font-size:13px;line-height:1.6;font-weight:600;color:var(--own-green);overflow-wrap:anywhere}
.own-passage-options>summary::marker{color:#688b64}
.own-passage-options>summary>span{font-size:11px;font-weight:400;color:#687962;margin-left:9px}
.own-passage-options>summary:focus-visible,.own-result [data-practice-result]:focus-visible{outline:3px solid #66a478;outline-offset:3px}
.own-passage-options-body{padding:5px 16px 16px}
.own-passage-options .own-selectors{margin-bottom:12px}
.own-passage-options .own-selectors select{font-size:16px;min-height:44px}
.own-passage-options .own-passage-summary{margin:15px 0 0}
.own-review-links{justify-content:space-between;gap:10px 18px}
.own-review-links>.own-link{min-height:44px}
@media(max-width:700px){.own-review>.own-piece h3{font-size:24px}.own-review-actions{align-items:stretch}.own-review-actions>button{width:100%;flex:1 1 100%}.own-passage-options>summary{padding:11px 12px}.own-passage-options>summary>span{display:block;margin-left:0}.own-passage-options-body{padding:4px 12px 14px}}

/* Active practice keeps the score and keys together; setup remains a normal page. */
.own-exercise-options{display:none;margin-top:18px;padding-top:16px;border-top:1px solid #dce4d5}
body.own-music-practice.practice-options-open .own-exercise-options{display:block}
.own-options-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.own-options-heading h2{font-size:24px;line-height:1.2}
.own-options-close{flex:0 0 auto;min-height:44px}
.own-exercise-keyboard{min-width:0}
.own-keyboard[hidden]{display:none!important}
.own-midi-input{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-size:14px;color:#52695b}
body.own-music-practice .own-practice-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;padding:0;min-width:0}
body.own-music-practice .own-practice-toolbar strong{flex:1 1 100px;min-width:0;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.3}
body.own-music-practice .own-practice-toolbar button{flex:0 0 auto;min-height:44px;padding:8px 10px;font-size:14px;white-space:nowrap}
body.own-music-practice .own-practice-toolbar #practice-screen{min-width:0}

@media(max-width:1100px){
 body.own-music-practice .sidebar,body.own-music-practice .topbar,body.own-music-practice .footer{display:none}
 body.own-music-practice .workspace{margin-left:0;min-height:0}
 body.own-music-practice main[data-view="own-music"]{display:flex;flex-direction:column;gap:6px;box-sizing:border-box;height:var(--practice-height,100dvh);min-height:306px;max-width:none;padding:6px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overflow:visible}
 body.own-music-practice .own-practice-toolbar{margin:0;flex-shrink:0}
 body.own-music-practice main>.studio-sound-check{flex-shrink:0;margin:0;min-height:44px}
 body.own-music-practice .own-exercise{--own-key-height:clamp(96px,25dvh,160px);position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(96px,1fr) auto auto auto;gap:6px;flex:1;min-height:0;width:100%;max-width:none;margin:0;padding:8px;overflow:hidden;border-radius:9px}
 body.own-music-practice .own-exercise>.own-piece{grid-row:1;min-width:0;margin:0}
 body.own-music-practice .own-exercise>.own-piece h3{font-size:17px;line-height:1.35;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 body.own-music-practice .own-exercise>.own-piece>span{display:none}
 body.own-music-practice .own-exercise>.own-staff-scroll{grid-row:2;display:flex;align-items:center;min-height:0;height:100%;margin:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}
 body.own-music-practice .own-exercise>.own-staff-scroll>svg{flex:0 0 auto;height:100%;min-height:96px;max-height:220px;width:auto;max-width:none}
 body.own-music-practice .own-exercise>.own-feedback{grid-row:3;min-height:22px;margin:0;padding:2px 0;font-size:14px;line-height:1.4}
 body.own-music-practice .own-exercise-keyboard{grid-row:5;min-width:0;align-self:end}
 body.own-music-practice .own-exercise .own-keyboard{padding:0;margin:0;border-top:1px solid #dce4d5;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}
 body.own-music-practice .own-exercise .own-keyboard .keyboard{width:100%;min-width:0;max-width:none;height:var(--own-key-height);margin:0;touch-action:pan-x}
 body.own-music-practice .own-exercise .piano-key.white{height:var(--own-key-height);min-width:44px}
 body.own-music-practice .own-exercise .piano-key.black{height:calc(var(--own-key-height)*.64)}
 body.own-music-practice .own-exercise .key-shortcut{display:none}
 body.own-music-practice .own-exercise .key-label{font-size:13px;bottom:8px}
 body.own-music-practice .own-exercise .piano-key.black .key-label{font-size:10px;bottom:7px}
 body.own-music-practice .own-exercise-options{position:absolute;inset:0;z-index:6;box-sizing:border-box;min-width:0;margin:0;padding:16px;overflow-y:auto;overscroll-behavior:contain;border:0;border-radius:8px;background:#f8f6ef}
 body.own-music-practice .own-exercise-options .own-options-heading{position:sticky;top:-16px;z-index:1;margin-top:0;padding:8px 0 12px;background:#f8f6ef}
 body.own-music-practice .own-exercise-options .own-private,body.own-music-practice .own-exercise-options .own-small{display:block;font-size:14px!important;line-height:1.5!important}
 body.own-music-practice .own-exercise-options .own-actions{display:flex;gap:10px 18px;margin:16px 0}
 body.own-music-practice .own-exercise-options .own-link{min-height:44px;font-size:14px}
 body.own-music-practice.practice-options-open .own-exercise>:not(.own-exercise-options){visibility:hidden}
}
@media(max-width:1100px) and (orientation:landscape) and (max-height:500px){
 body.own-music-practice main>.studio-sound-check{padding:0 10px}
 body.own-music-practice .own-exercise{gap:4px;padding:6px}
 body.own-music-practice .own-exercise>.own-piece h3{display:none}
 body.own-music-practice .own-exercise>.own-feedback{font-size:13px;min-height:20px;line-height:1.35}
}
@media(max-width:600px) and (orientation:portrait){
 body.own-music-practice .own-practice-toolbar{flex-wrap:nowrap;gap:4px}
 body.own-music-practice .own-practice-toolbar strong{display:none}
 body.own-music-practice .own-practice-toolbar button{flex:1 1 auto;min-width:0;height:44px;padding:6px 4px;font-size:13px;line-height:1.2;white-space:normal}
}

/* A short route from opening music to playing it. */
.own-entry .own-heading{margin-bottom:20px}
.own-entry .own-heading h2{margin:9px 0;font-size:clamp(27px,4vw,38px)}
.own-entry .own-heading p{margin:0}
.own-entry-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}
.own-entry-actions>.own-primary,.own-entry-actions>.own-file-label{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:78px;margin:0;padding:14px;text-align:center;font-size:16px;line-height:1.4;border-radius:9px}
.own-entry-actions>.own-primary>span,.own-entry-actions>.own-file-label>small{display:block;font-size:12px;font-weight:400}
.own-entry-actions>.own-file-label{position:relative;background:#fffdf7;border:1px solid #b1c6ad;cursor:pointer;overflow:hidden}
.own-entry-actions>.own-file-label>input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.own-entry-actions>.own-file-label:focus-within{outline:3px solid #66a478;outline-offset:3px}
.own-entry .studio-guidance{margin-top:0}
.own-entry .own-help-link{min-height:44px}
.own-entry .own-private{margin-top:12px;padding-top:12px}
.own-selection-notice{font-size:12px!important;line-height:1.5!important;margin:0 0 12px!important}
.own-review .own-review-actions>button{font-size:14px;min-height:46px}
.own-review .own-review-actions>.own-primary{flex:1}
.own-practice-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.own-progress{flex-shrink:0;font-size:13px;font-weight:600;color:#41624e;line-height:1.4}
.own-progress>span{font-weight:400;color:#687962}
.own-practice-actions{display:flex;align-items:center;gap:8px;margin:0}
.own-practice-actions>button{min-height:44px;font-size:14px;flex:0 1 auto;padding:9px 14px}
.own-current-bars{display:flex;justify-content:flex-start;align-items:center}
.own-current-bars>svg{width:100%;height:220px;min-width:var(--own-score-min-width,0px);max-width:1040px;margin-inline:auto;flex:0 1 auto}
@media(max-width:700px){
 .own-entry-actions{grid-template-columns:1fr}
 .own-entry-actions>.own-primary,.own-entry-actions>.own-file-label{min-height:68px;padding:11px}
 .own-entry .own-heading{margin-bottom:16px}
 .own-entry .studio-guidance>summary{font-size:14px}
 .own-practice-heading{align-items:flex-start;gap:4px;flex-direction:column}
 .own-progress{font-size:13px}
}
@media(max-width:1100px){
 body.own-music-practice .own-exercise>.own-staff-scroll.own-current-bars>svg{width:100%;height:100%;min-height:96px;max-height:240px;max-width:1040px;flex:0 1 auto}
 body.own-music-practice .own-exercise>.own-practice-actions{grid-row:4;flex-shrink:0}
 body.own-music-practice .own-exercise>.own-practice-actions>button{flex:1;min-width:0;padding:8px 10px;font-size:14px}
 body.own-music-practice .own-exercise .own-keyboard .keyboard{touch-action:manipulation}
}
@media(max-width:1100px) and (orientation:landscape) and (max-height:500px){
 body.own-music-practice .own-exercise{--own-key-height:clamp(76px,20dvh,100px);gap:3px;padding:4px 6px}
 body.own-music-practice .own-practice-heading{display:flex;min-height:18px}
 body.own-music-practice .own-exercise>.own-feedback{font-size:12px;line-height:1.3;min-height:16px;padding:0}
 body.own-music-practice .own-progress{font-size:12px;line-height:1.3}
}

.own-key-nav{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px}
.own-key-nav>button{min-height:44px;flex:0 1 auto;padding:8px 10px;font-size:13px}
.own-key-nav>span{font-size:12px;white-space:nowrap}
.own-key-needed{background:#e3efdf;border-color:#84aa7d}
.own-key-direction{margin:0 0 3px!important;font-size:12px!important;line-height:1.3!important}
.own-stable-keyboard .piano-key.black .key-shortcut{bottom:27px;color:#c1d5e3}
@media(max-width:600px) and (orientation:portrait) and (max-height:650px){
 body.own-music-practice .own-exercise{--own-key-height:clamp(88px,18dvh,116px);gap:4px;padding:6px}
 body.own-music-practice .own-exercise>.own-practice-actions>button{padding:7px 5px;font-size:12px;white-space:nowrap}
 body.own-music-practice .own-exercise>.own-feedback{font-size:13px;line-height:1.35}
}
@media(max-width:1100px) and (orientation:landscape) and (max-height:500px){
 body.own-music-practice main[data-view="own-music"]{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.95fr);grid-template-rows:auto minmax(0,1fr);gap:4px}
 body.own-music-practice .own-practice-toolbar{grid-column:1;grid-row:1;gap:4px}
 body.own-music-practice .own-practice-toolbar strong{display:none}
 body.own-music-practice main>.studio-sound-check{grid-column:2;grid-row:1;padding:0 6px;min-height:44px}
 body.own-music-practice main>.studio-sound-check .studio-sound-controls{gap:5px;font-size:12px}
 body.own-music-practice main>.studio-sound-check button{padding:5px;font-size:12px}
 body.own-music-practice .own-exercise{grid-column:1/-1;grid-row:2;grid-template-columns:minmax(0,1fr) 112px;grid-template-rows:auto minmax(96px,1fr) auto auto}
 body.own-music-practice .own-exercise>.own-piece{grid-column:1;grid-row:1}
 body.own-music-practice .own-exercise>.own-staff-scroll{grid-column:1;grid-row:2}
 body.own-music-practice .own-exercise>.own-feedback{grid-column:1;grid-row:3}
 body.own-music-practice .own-exercise>.own-practice-actions{grid-column:2;grid-row:1/4;flex-direction:column;align-items:stretch;justify-content:center;gap:4px}
 body.own-music-practice .own-exercise>.own-practice-actions>button{flex:0 0 auto;padding:6px;font-size:13px}
 body.own-music-practice .own-exercise-keyboard{grid-column:1/-1;grid-row:4}
 body.own-music-practice .own-key-direction{display:none}
}

/* The sample keeps its route back to file selection in the visible toolbar. */
body.own-music-practice .own-practice-toolbar .own-file-return{flex:1.4 1 100px;min-width:0;max-width:190px;min-height:44px;padding:6px 8px;white-space:normal;line-height:1.2;font-size:13px;font-weight:600;color:#126b55;background:#e3efdf;border:1px solid #b1c6ad}
