/* Floating practice fretboard. All selectors are scoped to the widget. */
.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{position:fixed;right:20px;bottom:84px;z-index:81;width:min(460px,calc(100vw - 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{display:flex;align-items:start;justify-content:space-between;gap:12px}.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:18px 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:14px;line-height:1.7;margin:14px 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{display:grid;gap:0;border:1px solid #cbdacd;border-radius:10px;overflow:hidden;background:#f0f4ed;padding:4px}.trainer-grid .trainer-col{display:flex;align-items:center;justify-content:center;color:#526c59;font-size:11px;min-height:30px}.trainer-string{font-size:12px;font-weight:600;color:#28513a;align-self:center;text-align:center}.trainer-cell{position:relative;min-width:0;min-height:44px;border:0;border-right:2px solid #bdcbbd;border-radius:0;background:transparent;color:#3d6650;font:inherit;font-size:12px;cursor:pointer}.trainer-cell::before{content:"";position:absolute;left:0;right:0;top:50%;height:var(--string-width,1px);background:#8ca18d;pointer-events:none}.trainer-cell span{position:relative;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#f0f4ed;color:#4e7058}.trainer-cell[aria-pressed=true] span{background:#0f766e;color:white}.trainer-cell[aria-pressed=true]{background:#dceee0}.trainer-cell.is-open{border-right:4px solid #67816e}.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-help{font-size:11px;line-height:1.8;color:#607467;margin:12px 0 0}.trainer-panel :focus-visible,.trainer-launch:focus-visible{outline:3px solid #c49830;outline-offset:2px}.trainer-panel button:focus-visible{z-index:1}.trainer-save button{border:0;background:none;text-decoration:underline;color:#0f766e;font:inherit;cursor:pointer;padding:0}.trainer-save a{color:#0f766e}.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 h2{font-size:18px}.trainer-settings{font-size:11px}.trainer-modes button{font-size:11px}.trainer-grid{padding:3px}.trainer-cell span{width:24px;height:24px}.trainer-launch svg{width:22px;height:22px}}
.trainer-header{position:sticky;top:-20px;z-index:3;background:#fff;padding:10px 0 12px;border-bottom:1px solid #e1eae4;margin-top:-10px}.trainer-help{border-top:1px solid #e1eae4;padding-top:4px}.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}@media(max-width:540px){.trainer-header{top:-16px}}
.trainer-panel{width:min(460px,calc(100% - 24px))}
/* Clear neck geometry: unbroken strings, fret wires and a distinct nut. */
.trainer-grid{background:#fff;padding:0;border:1px solid #bfcfc3;border-radius:10px;isolation:isolate}.trainer-grid .trainer-col{min-height:34px;background:#f4f7f3;font-size:10px;color:#3c5b47;white-space:nowrap}.trainer-string{height:100%;display:flex;align-items:center;justify-content:center;background:#f4f7f3;font-size:11px}.trainer-cell{min-height:44px;background:#69594a;border-right:4px solid #c3c7c1;border-radius:0;box-shadow:inset -1px 0 0 #777e77;color:#fff;padding:0;overflow:visible}.trainer-cell::before{left:0;right:-4px;top:50%;transform:translateY(-50%);background:linear-gradient(to bottom,#fff9df,#c3b788);height:var(--string-width,1px);box-shadow:0 1px 1px #1f1b1866;z-index:1}.trainer-cell span.trainer-finger{position:relative;z-index:2;width:27px;height:27px;border-radius:50%;background:transparent;color:transparent;border:0;box-shadow:none}.trainer-cell[aria-pressed=true]{background:#69594a}.trainer-cell[aria-pressed=true] span.trainer-finger{background:#0f766e;border:2px solid #fff;box-shadow:0 2px 5px #172b3066;color:white}.trainer-cell.is-open{background:#f4f7f3;border-right:7px solid #ede8d3;box-shadow:inset -1px 0 0 #817960}.trainer-cell.is-open::before{background:#9da899;box-shadow:none;right:-7px}.trainer-cell.is-open span.trainer-finger{width:22px;height:22px;color:#41624b;background:#f4f7f3;font-size:19px;line-height:1}.trainer-cell.is-open[aria-pressed=true]{background:#f4f7f3}.trainer-cell.is-open[aria-pressed=true] span.trainer-finger{background:#0f766e;color:white;border-color:#fff}.trainer-cell:hover{background:#7b6a58}.trainer-cell.is-open:hover{background:#e5eee4}.trainer-inlay{position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:#c7ccbb;opacity:.75;pointer-events:none;z-index:0}.trainer-grid.is-left .trainer-cell{border-right:0;border-left:4px solid #c3c7c1;box-shadow:inset 1px 0 0 #777e77}.trainer-grid.is-left .trainer-cell::before{left:-4px;right:0}.trainer-grid.is-left .trainer-cell.is-open{border-left:7px solid #ede8d3;box-shadow:inset 1px 0 0 #817960}.trainer-grid.is-left .trainer-cell.is-open::before{left:-7px;right:0}.trainer-fret-legend{font-size:11px;line-height:1.7;color:#536c5a;margin:10px 0 0}.trainer-cell:focus-visible{outline:2px solid #f6ce65;outline-offset:-3px;z-index:3}@media(max-width:540px){.trainer-grid{padding:0}.trainer-grid .trainer-col{font-size:9px}.trainer-cell span.trainer-finger{width:25px;height:25px}}
.trainer-inlay{bottom:1px}
.trainer-headstock{display:flex;align-items:center;gap:8px;margin:8px 0;color:#365b44;font-size:11px;min-height:32px}.trainer-headstock svg{width:60px;height:29px;flex-shrink:0}.trainer-headstock.is-left{justify-content:flex-end;flex-direction:row-reverse}.trainer-headstock.is-left svg{transform:scaleX(-1)}
