:root{color-scheme:dark;--bg:#08111d;--panel:#101d2b;--panel2:#172638;--line:#31475d;--cream:#fff7ec;--muted:#9dafc2;--gold:#e8b32a;--green:#70e5a6;--red:#c92d32;--blue:#3d82b8}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -10%,#19324a 0,#08111d 42%,#050912 100%);color:var(--cream);font-family:ui-rounded,"SF Pro Rounded","Avenir Next",system-ui,sans-serif;min-height:100vh}.shell{width:min(780px,100%);margin:auto;padding:calc(18px + env(safe-area-inset-top)) 18px 60px}.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:22px}.topbar h1{font-size:clamp(20px,4vw,28px);margin:2px 0 0}.kicker,.step-label,.mini-label{color:var(--gold);font-weight:900;font-size:11px;letter-spacing:2px;margin:0}.brand{display:grid;grid-template-columns:1fr 1fr;background:#f2ebdd;text-decoration:none;width:52px;height:52px;padding:7px;border-radius:11px;font-weight:1000;font-size:17px;line-height:18px;text-align:center}.brand span:nth-child(1){color:#648f3e}.brand span:nth-child(2){color:#397eb8}.brand span:nth-child(3){color:#e8ad1c}.brand span:nth-child(4){color:#c92d32}.close,.text-button{color:var(--muted);background:none;border:0;text-decoration:none;font:inherit;font-weight:800;cursor:pointer}.panel{background:linear-gradient(160deg,rgba(19,36,52,.98),rgba(10,19,30,.98));border:1px solid var(--line);border-radius:28px;padding:clamp(20px,5vw,38px);box-shadow:0 26px 70px #0008}.panel[hidden]{display:none}.hero h2,.panel h2{font-size:clamp(34px,7vw,58px);letter-spacing:-2px;line-height:.98;margin:13px 0 18px}.lede{font-size:17px;line-height:1.55;color:#bfd0df;max-width:620px}.field{display:grid;gap:8px;margin:22px 0;font-weight:800}.field span{color:#dce6ef}.field small{color:#75899d;font-weight:700}.field input,.field textarea{width:100%;background:#07101a;border:1px solid #38526a;border-radius:14px;padding:14px;color:var(--cream);font:inherit;font-size:16px;outline:none}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 2px #e8b32a33}.primary,.secondary,.reference{border:0;border-radius:17px;padding:16px 20px;color:var(--cream);font:inherit;font-weight:900;font-size:15px;cursor:pointer;width:100%}.primary{background:var(--red)}.secondary{background:transparent;border:1px solid #496279;margin-top:10px}.primary:disabled,.secondary:disabled{opacity:.42;cursor:not-allowed}.fine{color:#71869a;font-size:12px;text-align:center;margin:14px 0 0}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.section-head h2{font-size:clamp(29px,5vw,42px)}.timer{font-size:25px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums}.listen-card{display:flex;align-items:center;gap:20px;background:#09131f;border-radius:22px;padding:18px;margin:10px 0 18px}.pulse{width:90px;height:90px;flex:0 0 90px;border:2px solid #405a72;border-radius:50%;display:grid;place-items:center;font-size:26px;font-weight:900;transition:.15s}.pulse.hearing{border-color:var(--green);box-shadow:0 0 28px #70e5a655;transform:scale(1.04)}.status{font-size:19px;font-weight:900;margin:6px 0}.hint,.review-help{color:var(--muted);font-size:13px;line-height:1.45}.record-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.record-actions .secondary{margin:0}.record-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:white;margin-right:8px}.record-button.active{background:#26384a}.record-button.active .record-dot{background:#ff4b55;box-shadow:0 0 10px #ff4b55}
.captured-wrap{margin-top:24px}.captured-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.captured-head>div{display:flex;gap:7px}.tiny-button{border:1px solid #405970;border-radius:10px;background:#172638;color:#c7d5e1;padding:7px 9px;font:inherit;font-size:11px;font-weight:900;cursor:pointer}.tiny-button.danger{color:#ff9ca2;border-color:#704049}.tiny-button:disabled{opacity:.35;cursor:not-allowed}
.step-strip{display:flex;overflow:auto;gap:8px;padding:10px 0}.step-strip.empty{color:#73879a}
.mini-step{min-width:58px;padding:11px 8px;background:#172638;border:1px solid #31475d;border-radius:13px;text-align:center}.mini-step b{display:block;font-size:17px}.mini-step span{font-size:10px;color:var(--muted)}audio{width:100%;margin:8px 0 18px}.editor{display:grid;gap:10px}.edit-row{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;background:#0b1622;border:1px solid #2c4256;border-radius:16px;padding:11px}.edit-number{width:36px;height:36px;border-radius:18px;background:#26384a;display:grid;place-items:center;font-weight:900}.edit-position{display:flex;gap:8px;flex-wrap:wrap}.edit-position select{background:#172638;color:var(--cream);border:1px solid #405870;border-radius:9px;padding:8px;font:inherit;font-weight:800}.edit-actions{display:flex;gap:5px}.edit-actions button{width:31px;height:31px;border:1px solid #3a5167;background:#172638;color:white;border-radius:9px;cursor:pointer}.summary{display:flex;justify-content:space-between;color:var(--muted);padding:17px 3px}.summary b{color:var(--cream)}blockquote{margin:0 0 17px;padding:14px 17px;background:#192b27;border-left:4px solid var(--green);border-radius:10px;color:#dce8df}.reference{background:#14293a;border:1px solid #38607c;margin-bottom:14px}.coach-card{background:#0b1622;border:1px solid #34506a;border-radius:24px;padding:18px}.coach-head{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-weight:900;font-size:12px;margin-bottom:18px}.coach-head span:nth-child(2){color:var(--gold)}.fretboard{width:100%;display:grid;gap:0}.fret-row{display:grid;grid-template-columns:24px repeat(13,1fr);height:34px;align-items:center}.fret-row>span{color:#778ba0;font-size:11px;font-weight:900}.fret-cell{height:100%;border-right:1px solid #68798a;display:grid;place-items:center;position:relative}.fret-cell:before{content:"";width:100%;height:2px;background:#91a0ae}.fret-cell.nut{border-right:4px solid #e8eef4}.fret-dot{position:absolute;width:28px;height:28px;border-radius:50%;background:var(--green);border:3px solid #dff9ec;display:grid;place-items:center;color:#07120d;font-weight:1000;z-index:2}.target-copy{text-align:center;margin:17px 0 12px}.target-copy strong{display:block;font-size:24px}.target-copy span{display:block;color:var(--muted);font-weight:800;margin-top:3px}.finger{background:#172b24;border:1px solid #466b56;border-radius:17px;padding:13px;display:flex;align-items:center;justify-content:center;gap:12px}.finger>span{font-size:30px}.finger small{display:block;color:#8da299;font-weight:900;letter-spacing:1.3px}.finger strong{display:block;font-size:18px;margin-top:2px}.lesson-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lesson-actions .secondary{margin-top:10px}.complete{text-align:center;margin-top:18px;background:#172b24;border:1px solid var(--green);border-radius:22px;padding:25px}.complete>span{font-size:42px;color:var(--gold)}.complete h3{font-size:27px;margin:5px}.complete>strong{display:block;color:var(--gold);font-size:21px;margin-top:8px}.complete p{color:#aec1b5}@media(max-width:580px){.topbar{grid-template-columns:auto 1fr}.topbar .close{display:none}.record-actions{grid-template-columns:1fr}.listen-card{align-items:flex-start}.pulse{width:72px;height:72px;flex-basis:72px}.edit-row{grid-template-columns:38px 1fr}.edit-actions{grid-column:2}.panel{padding:20px;border-radius:22px}.fretboard{overflow-x:auto}.fret-row{min-width:620px}}
.arrangement-panel{padding:16px;background:#0b1622;border:1px solid var(--line);border-radius:17px;margin:18px 0}
.arrangement-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.arrangement-choice{flex:1 1 150px;background:#172638;color:var(--cream);border:1px solid #405870;border-radius:11px;padding:12px;font:inherit;font-size:14px;font-weight:800;cursor:pointer}
.arrangement-choice[aria-pressed="true"]{background:#18382b;border-color:var(--green);color:#aff8cd}
.arrangement-choice:disabled{opacity:.5;cursor:default}
.arrangement-choice:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.arrangement-panel .hint{margin:12px 0 0}.original-recording{color:var(--muted);background:transparent;font-size:13px}
#recording-help{margin:8px 0;font-size:12px}#learn-arrangement{margin-top:0}
.review-player{background:#0b1622;border:1px solid #405870;border-radius:18px;padding:18px;margin-top:20px}
.playback-sources,.playback-actions{display:flex;gap:8px;margin-top:12px}
.playback-actions .primary{flex:1}.playback-actions .secondary{width:auto;margin:0;font-size:13px;padding:12px}
.playback-seek{display:block;width:100%;margin:18px 0 12px;accent-color:var(--green);cursor:pointer}
.playback-progress{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.playback-progress strong{color:var(--cream)}.review-player .hint{font-size:12px;margin-bottom:0}
#download-recording{display:inline-block;font-size:12px;color:var(--green);margin-top:10px}#download-recording[hidden]{display:none}
.editor{padding:3px}
.edit-row{transition:border-color .12s,background .12s}.edit-row.current-step{border-color:var(--gold);background:#27251b}
.edit-row.current-step.is-playing{border-color:var(--green);background:#142e26}
button.edit-number{border:1px solid #405870;color:var(--cream);font:inherit;font-weight:900;cursor:pointer}
.current-step .edit-number{background:var(--gold);color:#08111d}.is-playing .edit-number{background:var(--green)}
.edit-row select:focus-visible,.edit-number:focus-visible,.review-player button:focus-visible,.playback-seek:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.review-player button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:580px){.playback-sources{flex-wrap:wrap}.playback-sources .arrangement-choice{flex:1 1 110px;font-size:12px;padding:10px 6px}.playback-actions .primary{padding:13px 8px}.playback-progress{font-size:12px}.review-player{padding:14px}.edit-position{min-width:0}.edit-position select{max-width:100%}}
