/* One illustrated instrument, with transparent controls on its strings. */
.trainer-launch{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:80;display:flex;align-items:center;gap:10px;min-height:50px;border:1px solid #0b625a;background:#0f766e;color:#fff;border-radius:30px;padding:12px 18px;font:600 14px "Segoe UI",Arial,sans-serif;cursor:pointer;box-shadow:0 5px 20px #172b301a}.trainer-launch svg{width:24px;height:24px}.trainer-panel{box-sizing:border-box;position:fixed;right:20px;bottom:84px;z-index:81;width:min(480px,calc(100% - 24px));max-height:calc(100svh - 108px);overflow:auto;overscroll-behavior:contain;background:#fff;border:1px solid #c6d8cc;border-radius:18px;padding:20px;box-shadow:0 12px 50px #172b3026;color:#172b30;font-family:"Segoe UI",Arial,sans-serif}.trainer-panel[hidden]{display:none!important}.trainer-header{position:sticky;top:-20px;z-index:5;background:#fff;display:flex;align-items:start;justify-content:space-between;gap:12px;padding:10px 0 12px;border-bottom:1px solid #e1eae4;margin-top:-10px}.trainer-header h2{font-size:19px;margin:0 0 6px;letter-spacing:-.4px}.trainer-header p{font-size:12px;margin:0;color:#5b7163}.trainer-close{min-width:42px;min-height:42px;background:#f1f5f2;border:1px solid #d5e1d9;border-radius:9px;font-size:23px;color:#365d4b;cursor:pointer}.trainer-modes{display:flex;gap:5px;margin:16px 0 12px;padding:4px;border-radius:9px;background:#edf3ef}.trainer-modes button{font:inherit;font-size:12px;min-height:40px;padding:7px 10px;flex:1;border:0;background:none;color:#4c6858;border-radius:7px;cursor:pointer}.trainer-modes button[aria-pressed=true]{background:#0f766e;color:#fff}.trainer-settings{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#486454;flex-wrap:wrap}.trainer-settings label{display:inline-flex;align-items:center;gap:6px}.trainer-settings input{accent-color:#0f766e}.trainer-settings select{font:inherit;background:#fff;border:1px solid #c6d8cc;color:#365d4b;border-radius:6px;padding:8px}.trainer-instruction{background:#edf5ef;border-radius:9px;padding:12px;font-size:13px;line-height:1.7;margin:12px 0}.trainer-range{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#4c6858;margin:12px 0}.trainer-range button{min-width:38px;min-height:38px;border:1px solid #ccdbd1;background:#fff;border-radius:7px;cursor:pointer;color:#365d4b;font-size:17px}.trainer-range button:disabled{opacity:.35;cursor:default}
.trainer-grid{position:relative;display:block;isolation:isolate;width:min(100%,350px);aspect-ratio:420/640;margin:0 auto;overflow:visible;border:0;border-radius:14px;background:radial-gradient(ellipse at center,#edf2e8 0%,#f8faf6 65%,#fff 100%)}.trainer-neck-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.trainer-neck-art text{font-family:"Segoe UI",Arial,sans-serif;text-anchor:middle;fill:#3d5d48}.trainer-neck-art .neck-title{font-size:15px;font-weight:650;letter-spacing:1.5px}.trainer-neck-art .neck-string-label{font-size:18px;font-weight:650;paint-order:stroke;stroke:#f8faf6;stroke-width:5px;stroke-linejoin:round}.trainer-neck-art .neck-fret-label{font-size:23px;font-weight:650}.trainer-neck-art .neck-fret-caption{font-size:11px;letter-spacing:.5px}.trainer-neck-art .neck-range-caption{font-size:12px}.trainer-cell{position:absolute;z-index:2;transform:translate(-50%,-50%);width:8%;min-width:26px;height:11%;min-height:44px;border:0;border-radius:7px;padding:0;background:transparent;box-shadow:none;color:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}.trainer-cell:hover{background:#ffffff25}.trainer-cell .trainer-finger{width:25px;height:25px;border:0;border-radius:50%;background:transparent;display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;color:transparent}.trainer-cell.is-open{height:9%;min-height:40px}.trainer-cell.is-open .trainer-finger{background:#f7f9f1;border:1px solid #a9b6a3;color:#426447;font-size:22px;line-height:1}.trainer-cell[aria-pressed=true] .trainer-finger{background:#0f766e;border:2px solid #fff;color:transparent;box-shadow:0 2px 5px #172b3055}.trainer-cell:focus-visible{outline:3px solid #b78417;outline-offset:1px;background:#fff3bb33;z-index:3}.trainer-fret-legend,.trainer-view-note{font-size:11px;line-height:1.7;color:#536c5a;margin:10px 0 0}.trainer-selection{font-size:12px;line-height:1.8;color:#4a6554;margin:12px 0}.trainer-actions{display:flex;gap:8px;flex-wrap:wrap}.trainer-actions button{font:inherit;font-size:12px;padding:10px 14px;min-height:42px;cursor:pointer;border-radius:8px;border:1px solid #91b6a1;color:#1e6756;background:#fff}.trainer-actions .trainer-check{background:#0f766e;border-color:#0f766e;color:#fff}.trainer-feedback{font-size:13px;line-height:1.8;background:#edf5ef;border-radius:8px;padding:10px 12px;margin-top:12px}.trainer-feedback:empty{display:none}.trainer-save{font-size:11px;line-height:1.7;color:#5d7164;margin:12px 0 0}.trainer-save button{border:0;background:none;text-decoration:underline;color:#0f766e;font:inherit;cursor:pointer;padding:0}.trainer-save a{color:#0f766e}.trainer-help{border-top:1px solid #e1eae4;padding-top:4px;font-size:11px;line-height:1.8;color:#607467;margin:12px 0 0}.trainer-help summary{font-size:11px;cursor:pointer;color:#496957;padding:8px 0}.trainer-help p{font-size:11px;line-height:1.8;margin:0}.trainer-panel :focus-visible,.trainer-launch:focus-visible{outline:3px solid #c49830;outline-offset:2px}.trainer-footer-space{height:85px}
@media(max-width:540px){.trainer-launch{right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:10px 15px}.trainer-panel{right:12px;bottom:76px;padding:16px;max-height:calc(100svh - 92px);border-radius:15px}.trainer-header{top:-16px}.trainer-header h2{font-size:18px}.trainer-settings{font-size:11px}.trainer-modes button{font-size:11px}.trainer-cell .trainer-finger{width:23px;height:23px}.trainer-launch svg{width:22px;height:22px}}
/* Wide-screen layout reserves a real column for the open fretboard. */
@media(min-width:1680px){body.trainer-open main,body.has-lesson-axis.trainer-open main{max-width:none;padding-right:520px}}
