:root{--bg: #12141a;--surface: #1c1f28;--surface-2: #262a36;--text: #e8eaf0;--text-dim: #9aa1b2;--accent: #f0a832;--accent-strong: #ffc14d;--good: #4caf78;--warn: #e0b93f;--bad: #e0604f;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:1120px;margin:0 auto;padding:0 1rem 4rem}.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:1.25rem 0;border-bottom:1px solid var(--surface-2);margin-bottom:1.5rem}.brand{font-size:1.25rem;font-weight:700}.app-header nav{display:flex;gap:.5rem;flex-wrap:wrap}.app-header nav a{color:var(--text-dim);text-decoration:none;padding:.4rem .8rem;border-radius:999px}.app-header nav a.active{background:var(--surface-2);color:var(--accent-strong)}h1{font-size:1.5rem;margin:0 0 .75rem}.loading,.page-hint{color:var(--text-dim)}.error{color:var(--bad)}.song-list{list-style:none;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.song-card{display:flex;flex-direction:column;gap:.3rem;background:var(--surface);border:1px solid var(--surface-2);border-radius:12px;padding:1rem 1.1rem;text-decoration:none;color:var(--text);transition:border-color .15s ease}.song-card:hover{border-color:var(--accent)}.song-title{font-weight:700;font-size:1.05rem}.song-artist,.song-meta{color:var(--text-dim);font-size:.9rem}.song-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.3rem}.song-tags em{font-style:normal;font-size:.75rem;background:var(--surface-2);border-radius:999px;padding:.15rem .6rem;color:var(--text-dim)}.section-timeline{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1rem 0}.section-chip{display:flex;flex-direction:column;align-items:center;gap:.1rem;background:var(--surface);color:var(--text-dim);border:1px solid var(--surface-2);border-radius:10px;padding:.45rem .9rem;cursor:pointer;font:inherit}.section-chip.current{border-color:var(--accent);color:var(--text);background:var(--surface-2)}.section-name{font-weight:600;font-size:.9rem}.section-meta{font-size:.75rem;min-height:1em}.study-layout{display:grid;grid-template-columns:1fr minmax(280px,330px);gap:1rem;align-items:start}.study-main{display:flex;flex-direction:column;gap:.8rem;min-width:0}.study-controls{display:flex;flex-direction:column;gap:.55rem;position:sticky;top:.75rem;padding:.8rem;border:1px solid var(--surface-2, #2a3138);border-radius:12px;background:var(--surface, #1a2027)}.study-controls .transport{margin-top:0;flex-direction:column;align-items:stretch}.study-controls .play-btn{width:100%;font-size:1.05rem;padding:.6rem}.study-controls .nav-row{display:flex;gap:.5rem}.study-controls .nav-row button{flex:1}.eval-btn{font:inherit;font-weight:700;padding:.45rem .9rem;border-radius:10px;border:1px solid #8b7cff;background:#8b7cff22;color:#b3a7ff;cursor:pointer}.eval-btn:hover{background:#8b7cff33}.eval-btn.active{background:#8b7cff;color:#101418}.tuner-debug{text-align:center;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:.82rem;color:var(--text-dim);margin:.4rem 0 0}@media (max-width: 820px){.study-layout{grid-template-columns:1fr}.study-controls{position:static}}.study-pair{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;padding:.6rem .75rem;border:1px solid var(--surface-2, #2a3138);border-radius:12px}.pair-strum .pattern-view{min-width:0}.study-pair-next{border-style:dashed;opacity:.92}.pair-chord{flex:0 0 auto;display:flex;flex-direction:column;gap:.3rem}.pair-strum{flex:1 1 16rem;min-width:0}.next-label{color:var(--text-dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.transport{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:1rem}button{font:inherit;background:var(--surface);color:var(--text);border:1px solid var(--surface-2);border-radius:10px;padding:.5rem .9rem;cursor:pointer}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#221a05;font-weight:700}button.primary:hover:not(:disabled){background:var(--accent-strong)}button.big{padding:.75rem 1.4rem;font-size:1.05rem}.bpm-control{display:flex;align-items:center;gap:.5rem;color:var(--text-dim);font-size:.9rem}.step-position{color:var(--text-dim);font-size:.85rem}.chord-diagram{margin:0;background:var(--surface);border:1px solid var(--surface-2);border-radius:12px;padding:.75rem;width:fit-content}.chord-diagram figcaption{text-align:center;margin-bottom:.4rem}.chord-diagram svg{width:150px;height:auto;display:block}.chord-diagram.compact svg{width:100px}.chord-diagram rect{fill:var(--text)}.grid-line{stroke:var(--text-dim);stroke-width:1}.finger-dot{fill:var(--accent)}.finger-number{fill:#221a05;font-size:9px;font-weight:700;text-anchor:middle}.marker,.base-fret{fill:var(--text-dim);font-size:10px;text-anchor:middle}.open-marker{fill:none;stroke:var(--text-dim);stroke-width:1.5}.pattern-view{background:var(--surface);border:1px solid var(--surface-2);border-radius:12px;padding:1rem}.pattern-header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.pattern-meta{color:var(--text-dim);font-size:.85rem}.pattern-slots{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.pattern-slot-wrapper{display:inline-flex;align-items:center;gap:.35rem}.bar-separator{color:var(--text-dim);font-size:1.4rem}.pattern-slot{display:inline-flex;flex-direction:column;align-items:center;min-width:2rem;padding:.35rem .25rem;border-radius:8px;border:1px solid transparent}.slot-symbol{font-size:1.3rem;line-height:1}.slot-beat{font-size:.7rem;color:var(--text-dim)}.move-D .slot-symbol{color:var(--accent-strong)}.move-U .slot-symbol{color:#7ec8ff}.move-pause .slot-symbol{color:var(--text-dim)}.pattern-slot.accent{border-color:var(--surface-2);background:var(--surface-2)}.pattern-slot.active{border-color:var(--accent);background:#f0a8322e}.chord-picker{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.chip.current{border-color:var(--accent);color:var(--accent-strong)}.trainer-grid{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:1.5rem;align-items:start}@media (max-width: 680px){.trainer-grid{grid-template-columns:1fr}}.trainer-stack{display:flex;flex-direction:column;gap:1rem}.trainer-actions{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}.feedback-panel{background:var(--surface);border:1px solid var(--surface-2);border-radius:12px;padding:1rem 1.2rem;width:100%;max-width:480px}.feedback-headline{font-weight:700;margin:0 0 .75rem}.quality-correct{border-color:var(--good)}.quality-partial{border-color:var(--warn)}.quality-wrong,.quality-silent{border-color:var(--bad)}.score-bar{display:grid;grid-template-columns:5.5rem 1fr 3rem;align-items:center;gap:.6rem;margin-bottom:.5rem;font-size:.9rem}.score-track{background:var(--surface-2);border-radius:999px;height:.6rem;overflow:hidden}.score-fill{height:100%;border-radius:999px}.score-fill.good{background:var(--good)}.score-fill.ok{background:var(--warn)}.score-fill.bad{background:var(--bad)}.score-value{text-align:right;color:var(--text-dim)}.feedback-issues{margin:.5rem 0;padding-left:1.2rem;color:var(--warn);font-size:.9rem}.feedback-detail,.feedback-notes{color:var(--text-dim);font-size:.9rem;margin:.5rem 0 0}.tuner-panel{display:flex;flex-direction:column;gap:1.25rem;max-width:560px}.tuner-display{background:var(--surface);border:2px solid var(--surface-2);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;min-height:11rem;justify-content:center;transition:border-color .2s ease}.tuner-display.status-in-tune{border-color:var(--good)}.tuner-display.status-close{border-color:var(--warn)}.tuner-display.status-off{border-color:var(--bad)}.tuner-note{font-size:2.6rem;font-weight:700}.tuner-note sub{font-size:1.2rem;color:var(--text-dim)}.tuner-cents{color:var(--text-dim)}.tuner-needle-track{position:relative;width:100%;height:.9rem;background:linear-gradient(90deg,var(--bad) 0%,var(--warn) 32%,var(--good) 46%,var(--good) 54%,var(--warn) 68%,var(--bad) 100%);border-radius:999px;opacity:.9}.tuner-center-mark{position:absolute;left:50%;top:-4px;bottom:-4px;width:2px;background:var(--text);transform:translate(-50%)}.tuner-needle{position:absolute;top:-6px;bottom:-6px;width:4px;border-radius:2px;background:var(--text);box-shadow:0 0 6px #0009;transform:translate(-50%);transition:left 80ms linear}.tuner-advice{font-weight:600}.tuner-idle{color:var(--text-dim)}.tuner-strings{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem}.tuner-string{display:flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--surface-2);border-radius:10px;padding:.5rem .8rem}.tuner-string.current{border-color:var(--accent)}.tuner-string.tuned{border-color:var(--good);color:var(--good)}.string-label{font-weight:700}.string-note{color:var(--text-dim);font-size:.9rem}.journey-progress{display:flex;align-items:center;gap:.75rem;margin:.75rem 0 1.5rem;color:var(--text-dim);font-size:.9rem}.journey-progress .score-track{flex:1;max-width:320px}.journey-module{background:var(--surface);border:1px solid var(--surface-2);border-radius:14px;padding:1rem 1.25rem;margin-bottom:1rem}.journey-module-header{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.journey-module-header h2{font-size:1.15rem;margin:0}.journey-module-header .module-count{color:var(--text-dim);font-size:.85rem;margin-left:auto}.journey-module>p{color:var(--text-dim);margin:.35rem 0 .75rem;font-size:.95rem}.journey-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.journey-step{border:1px solid var(--surface-2);border-radius:10px;background:var(--surface-2)}.journey-step.done>.journey-step-row .journey-step-title{text-decoration:line-through;color:var(--text-dim)}.journey-step-row{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;cursor:pointer}.journey-step-row input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.journey-step-title{font-weight:600}.journey-step-type{margin-left:auto;font-size:.75rem;color:var(--text-dim);background:var(--surface);border-radius:999px;padding:.15rem .6rem;white-space:nowrap}.journey-step-detail{padding:0 .8rem .9rem 2.5rem;display:flex;flex-direction:column;gap:.6rem}.journey-step-detail p{margin:0;color:var(--text);font-size:.95rem;line-height:1.5}.journey-tips{margin:0;padding-left:1.1rem;color:var(--text-dim);font-size:.9rem;line-height:1.55}.journey-tips li::marker{content:"💡 "}.journey-step-detail .chord-row{display:flex;gap:.75rem;flex-wrap:wrap}.journey-cta{align-self:flex-start}.transition-pair{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.transition-arrow{font-size:2rem;color:var(--text-dim)}.transition-current .chord-diagram{border-color:var(--accent)}.transition-count{font-size:1.1rem;font-weight:700;color:var(--accent-strong);min-width:7rem}.tuner-strings button.tuner-string{width:100%;text-align:left;font:inherit}.tuner-string.target{border-color:var(--accent);background:#f0a8321f}.journey-continue{border-color:var(--accent)}.journey-cta{text-decoration:none}.journey-step-toggle{flex:1;display:flex;align-items:center;gap:.6rem;background:transparent;border:none;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.journey-step-toggle .journey-step-type{margin-left:auto}.link-button{display:inline-block;background:var(--accent);color:#221a05;font-weight:700;border-radius:10px;padding:.5rem .9rem;text-decoration:none}.link-button:hover{background:var(--accent-strong)}.quiz-card{background:var(--surface-2);border-radius:12px;padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.6rem;max-width:560px}.quiz-progress{margin:0;color:var(--text-dim);font-size:.8rem}.quiz-question{margin:0;font-weight:600}.quiz-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.quiz-option{width:100%;text-align:left}.quiz-option.correct{border-color:var(--good);color:var(--good)}.quiz-option.wrong{border-color:var(--bad);color:var(--bad)}.quiz-option.muted{opacity:.5}.quiz-explanation,.quiz-result{margin:0;font-size:.9rem;color:var(--text-dim)}.quiz-result{font-size:1rem;color:var(--text)}.journey-week{display:flex;align-items:center;gap:.35rem;margin:0 0 1rem;flex-wrap:wrap}.week-dot{width:1.6rem;height:1.6rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;background:var(--surface-2);color:var(--text-dim)}.week-dot.practiced{background:var(--good);color:#0d2417;font-weight:700}.week-dot.today{outline:2px solid var(--accent)}.week-label{color:var(--text-dim);font-size:.85rem;margin-left:.4rem}.journey-songs-readiness{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.song-readiness{display:grid;grid-template-columns:minmax(220px,320px) 1fr;align-items:center;gap:.75rem;color:var(--text);text-decoration:none;font-size:.9rem}.journey-review{border-color:var(--warn)}.review-link{background:none;border:none;padding:0;color:var(--accent-strong);cursor:pointer;font:inherit;text-decoration:underline}.minute-panel{display:flex;align-items:center;gap:.75rem;margin:1rem 0}.hold-results{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}.hold-chip{border-radius:999px;padding:.25rem .7rem;font-size:.85rem;background:var(--surface-2)}.hold-chip.quality-correct{color:var(--good);border:1px solid var(--good)}.hold-chip.quality-partial{color:var(--warn);border:1px solid var(--warn)}.hold-chip.quality-wrong,.hold-chip.quality-silent{color:var(--bad);border:1px solid var(--bad)}.video-embed{position:relative;width:100%;max-width:560px;aspect-ratio:16 / 9}.video-embed iframe{width:100%;height:100%;border:0;border-radius:12px}.song-category h2{font-size:1.15rem;margin:1.25rem 0 .25rem}.chord-practice{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}.barre-bar{fill:var(--accent)}.chord-group-label{margin:1rem 0 .25rem;color:var(--text-dim);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.chord-step-practice{display:flex;flex-direction:column;gap:.6rem}.transition-hint{background:var(--surface);border:1px solid var(--surface-2);border-left:3px solid var(--accent);border-radius:12px;padding:.75rem 1rem;max-width:260px}.transition-hint-title{margin:0 0 .4rem;font-weight:700;font-size:.95rem}.transition-hint .journey-tips{margin:0 0 .5rem;font-size:.85rem}.transition-hint-link{color:var(--accent-strong);font-size:.85rem;text-decoration:none}.transition-hint-link:hover{text-decoration:underline}.lyrics-card{background:var(--surface);border:1px solid var(--surface-2);border-radius:12px;padding:1rem 1.2rem;margin-top:1rem}.lyrics-title{margin:0 0 .6rem;font-weight:700;color:var(--text-dim);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.lyrics-line{margin:.15rem 0;line-height:1.6;font-size:1.02rem}.voice-picker{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.voice-picker-label{color:var(--text-dim);font-size:.9rem}.voice-picker .chip{font-size:.85rem;padding:.35rem .7rem}.transpose-key{min-width:2.6rem;text-align:center;font-size:1.05rem;color:var(--accent, #7cc4ff)}.capo-info{font-size:.85rem;color:var(--text-dim)}.cifra-page{max-width:46rem;margin:0 auto}.cifra-toolbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;padding:.5rem 0;background:var(--bg, #101418);border-bottom:1px solid var(--border, #2a3138)}.cifra-toolbar-sep{flex:0 0 .6rem}.cifra-body{padding:1rem 0 40vh;line-height:1.5}.cifra-section{margin-bottom:1.4rem}.cifra-section-title{color:var(--text-dim);font-size:.95em;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem}.cifra-chord-line{font-family:SF Mono,ui-monospace,Menlo,monospace;color:var(--accent, #7cc4ff);font-weight:700;margin:.2rem 0 .5rem;white-space:pre-wrap}.cifra-line{margin:.1rem 0;white-space:pre-wrap}.cifra-seg{display:inline-block;vertical-align:bottom}.cifra-chord{display:block;font-family:SF Mono,ui-monospace,Menlo,monospace;color:var(--accent, #7cc4ff);font-size:.9em;line-height:1.3;min-height:1.3em}.cifra-text{white-space:pre-wrap}.cifra-note{color:var(--text-dim);font-style:italic;font-size:.9em}.import-page{max-width:52rem;margin:0 auto}.import-grid{display:grid;grid-template-columns:minmax(14rem,1fr) 2fr;gap:1rem;margin:1rem 0}@media (max-width: 720px){.import-grid{grid-template-columns:1fr}}.import-form{display:flex;flex-direction:column;gap:.6rem}.import-field{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--text-dim)}.import-field input,.import-field select,.import-field textarea,.lyrics-editor{background:var(--surface, #1a2027);color:var(--text, #e8edf2);border:1px solid var(--border, #2a3138);border-radius:8px;padding:.5rem .6rem;font-size:.95rem}.import-text textarea,.lyrics-editor{font-family:SF Mono,ui-monospace,Menlo,monospace;white-space:pre;overflow-x:auto;width:100%}.import-preview{border:1px solid var(--border, #2a3138);border-radius:8px;padding:.6rem .8rem;margin-bottom:.8rem}.import-warning{color:#f0b429;font-size:.9rem}.lyrics-help{color:var(--text-dim);font-size:.82rem;margin:.3rem 0}.song-delete{margin-left:.6rem}.song-row{display:flex;align-items:stretch;gap:.5rem;min-width:0}.song-row .song-card{flex:1 1 auto;min-width:0}.song-card .song-title{overflow-wrap:anywhere}.song-actions{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:.35rem;flex:0 0 auto}.fav-btn{background:none;border:none;cursor:pointer;font-size:1.3rem;line-height:1;color:var(--text-dim);padding:.2rem .4rem}.fav-btn.current{color:#ff6b81}.status-chip{font-size:.78rem;white-space:nowrap}.lefty-toggle{margin-left:auto;font-size:.8rem}.identify-page{max-width:34rem;margin:0 auto}.identify-result{margin-top:1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.identify-headline{font-size:1.1rem}.progress-page{max-width:46rem;margin:0 auto}.progress-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.8rem;margin:1rem 0 1.4rem}.progress-card{border:1px solid var(--border, #2a3138);border-radius:10px;padding:.9rem;display:flex;flex-direction:column;gap:.25rem}.progress-big{font-size:1.7rem;font-weight:700}.progress-label{color:var(--text-dim);font-size:.9rem}.journey-bar{height:6px;border-radius:3px;background:var(--border, #2a3138);overflow:hidden;margin-top:.3rem}.journey-bar-fill{height:100%;background:#f5a623}.heatmap{display:grid;grid-template-rows:repeat(7,.85rem);grid-auto-flow:column;gap:3px;margin:.6rem 0 .3rem}.heatmap-cell{width:.85rem;height:.85rem;border-radius:3px;background:var(--border, #2a3138)}.heatmap-cell.practiced{background:#f5a623}.heatmap-cell.today{outline:1px solid var(--text-dim)}.weak-list{padding-left:1.1rem;line-height:1.8}.workout-card{border:1px solid #f5a62355;border-radius:10px;padding:.8rem 1rem;margin:.8rem 0 1.2rem;background:#f5a62310}.workout-title{font-weight:700;margin-bottom:.4rem}.workout-list{padding-left:1.2rem;line-height:1.9}.guide-page{max-width:52rem;margin:0 auto}.guide-page h2{margin-top:1.6rem}.anatomy-grid{display:grid;grid-template-columns:2fr 1fr;gap:1rem;align-items:start}@media (max-width: 760px){.anatomy-grid{grid-template-columns:1fr}}.anatomy-svg{width:100%;height:auto}.guitar-wood{fill:#b9741f;stroke:#7a4b12}.guitar-hole{fill:#1a120a;stroke:#e8c58a;stroke-width:3}.guitar-neck{fill:#6b4a2b}.guitar-head{fill:#4c3420}.guitar-fret,.guitar-string{stroke:#d8d8d8;stroke-width:1}.guitar-nut,.guitar-bridge{fill:#e8e0d0}.guitar-peg{fill:#cfcfcf}.anatomy-hotspot{cursor:pointer}.hotspot-ring{fill:none;stroke:#7cc4ff;stroke-width:2;opacity:.65}.hotspot-dot{fill:#7cc4ff}.anatomy-hotspot.selected .hotspot-ring{stroke:#f5a623;opacity:1}.anatomy-hotspot.selected .hotspot-dot{fill:#f5a623}.anatomy-panel{border:1px solid var(--border, #2a3138);border-radius:10px;padding:.8rem 1rem}.guitar-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:.8rem}.guitar-type-card{border:1px solid var(--border, #2a3138);border-radius:10px;padding:.8rem 1rem}.guitar-type-card.mine{border-color:#f5a623}.quiz-question{margin-bottom:.8rem}.video-embed{position:relative;aspect-ratio:16 / 9;margin:.8rem 0}.video-embed iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;border-radius:10px}.coach-badge{display:inline-flex;flex:0 0 auto;line-height:0}.coach-disc{fill:#171a22;stroke:#8b7cff55;stroke-width:1}.coach-ring{fill:none;stroke:#2dd4bf;stroke-width:1.4;opacity:0}.coach-spinner{fill:none;stroke:url(#coach-grad);stroke-width:2;stroke-linecap:round;stroke-dasharray:20 62;opacity:0;transform-origin:20px 20px}.coach-badge.active .coach-ring-1{animation:coach-pulse 2s ease-out infinite}.coach-badge.active .coach-ring-2{animation:coach-pulse 2s ease-out infinite 1s}.coach-badge.active .coach-spark{animation:coach-glow 2s ease-in-out infinite}.coach-badge.thinking .coach-spinner{opacity:1;animation:coach-spin 1s linear infinite}@keyframes coach-pulse{0%{r:13;opacity:.5}to{r:19;opacity:0}}@keyframes coach-glow{0%,to{opacity:.85}50%{opacity:1}}@keyframes coach-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.coach-badge.active .coach-ring-1,.coach-badge.active .coach-ring-2,.coach-badge.active .coach-spark,.coach-badge.thinking .coach-spinner{animation:none}.coach-badge.active .coach-ring-1{opacity:.3}}.coach-card{border:1px solid #8b7cff55;border-left:3px solid #8b7cff;border-radius:10px;padding:.8rem 1rem;margin:.8rem 0;background:#8b7cff10}.coach-card.coach-celebrate{border-color:#2dd4bf66;border-left-color:#2dd4bf;background:#2dd4bf12}.coach-card.coach-correct{border-left-color:#f5a623}.coach-card-head{display:flex;align-items:center;gap:.6rem}.coach-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#a99cff;margin:0}.coach-headline{font-weight:700;margin:.1rem 0 0}.coach-praise{color:#2dd4bf;font-size:.9rem;margin:.5rem 0 .2rem}.coach-detail{margin:.3rem 0 .6rem;line-height:1.5}.coach-active-tag{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:#a99cff}.header-tools{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.coach-header{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:600;color:#a99cff;padding:.2rem .5rem;border:1px solid #8b7cff44;border-radius:999px;text-decoration:none}.coach-header:hover,.coach-header.active{background:#8b7cff1f;border-color:#8b7cff88}.study-nudge{display:flex;align-items:center;gap:.5rem;margin:.4rem 0;padding:.4rem .7rem;border-radius:999px;font-weight:600;font-size:.9rem;border:1px solid #8b7cff44;background:#8b7cff10;animation:nudge-in .18s ease-out}.study-nudge.nudge-good{color:#2dd4bf;border-color:#2dd4bf55;background:#2dd4bf12}.study-nudge.nudge-warn{color:#f5a623;border-color:#f5a62355;background:#f5a62312}.study-nudge.nudge-info{color:#a99cff}@keyframes nudge-in{0%{opacity:0;transform:translateY(-3px)}}@media (prefers-reduced-motion: reduce){.study-nudge{animation:none}}.coach-reflect{margin:.4rem 0 .2rem}.coach-reflect-btn{display:inline-flex;align-items:center;gap:.4rem}.coach-reflect-card{margin-top:.4rem}.coach-chat-page{display:flex;flex-direction:column;gap:.8rem;max-width:720px;margin:0 auto}.coach-chat-head{display:flex;align-items:center;gap:.7rem}.coach-chat-head h1{margin:0}.coach-chat-log{display:flex;flex-direction:column;gap:.5rem;min-height:300px;max-height:55vh;overflow-y:auto;padding:.6rem;border:1px solid #2a2f3a;border-radius:12px;background:#12141a}.chat-bubble{max-width:82%;padding:.55rem .8rem;border-radius:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.chat-bubble.chat-user{align-self:flex-end;background:#f5a62322;border:1px solid #f5a62355;border-bottom-right-radius:4px}.chat-bubble.chat-assistant{align-self:flex-start;background:#8b7cff14;border:1px solid #8b7cff44;border-bottom-left-radius:4px}.chat-typing{color:#a99cff;font-style:italic}.coach-chat-empty{color:#9aa3b2;margin:auto 0;text-align:center}.coach-suggestions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin-top:.6rem}.coach-chat-form{display:flex;gap:.5rem}.coach-chat-form input{flex:1;min-width:0;padding:.6rem .8rem;border-radius:10px;border:1px solid #2a2f3a;background:#12141a;color:inherit;font-size:1rem}.coach-chat-form input:focus{outline:none;border-color:#8b7cff88}.coach-offline code{background:#2a2f3a;padding:.05rem .35rem;border-radius:5px;font-size:.85em}.trad-chord{display:flex;align-items:center;gap:.8rem}.trad-chord-text{display:flex;flex-direction:column}.trad-chord-name{font-size:1.8rem;line-height:1.1}.trad-chord-pt{color:var(--text-dim);font-size:.85rem}.trad-chord-frets{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:1.1rem;letter-spacing:.15em;color:var(--accent, #7cc4ff);margin-top:.3rem}.trad-chord-base{color:var(--text-dim);font-size:.8rem}.strum-notation-scroll{overflow-x:auto}.strum-notation{height:76px;min-width:100%}.strum-beam,.strum-stem{stroke:var(--text, #e8edf2);stroke-width:2}.strum-arrow{fill:var(--text, #e8edf2);font-size:20px;text-anchor:middle}.strum-rest{fill:var(--text-dim);font-size:20px;text-anchor:middle}.strum-accent{fill:#f5a623;font-size:15px;font-weight:700;text-anchor:middle}.strum-count{fill:var(--text-dim);font-size:12px;text-anchor:middle}.strum-barline{stroke:var(--border, #2a3138);stroke-width:1.5}.count-in{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:1rem;margin-bottom:.6rem;border:2px dashed #f5a62366;border-radius:12px;background:#f5a62312}.count-in-label{color:var(--text-dim);font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}.count-in-number{font-size:3rem;font-weight:800;line-height:1;color:#f5a623}.prep-banner{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.6rem 1rem;margin-bottom:.6rem;border:2px solid #2dd4bf88;border-radius:12px;background:#2dd4bf1a;animation:prep-pulse .5s ease-in-out infinite alternate}.prep-banner-icon{font-size:1.5rem}.prep-banner-text{font-weight:700;font-size:1.1rem;color:#2dd4bf}.prep-banner-count{font-size:1.8rem;font-weight:800;line-height:1;color:#2dd4bf;min-width:1.4rem;text-align:center}@keyframes prep-pulse{to{border-color:#2dd4bf;background:#2dd4bf2e}}@media (prefers-reduced-motion: reduce){.prep-banner{animation:none}}.prep-beats{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-dim)}.prep-beats select{padding:.2rem .4rem;border-radius:8px;border:1px solid #2a2f3a;background:#12141a;color:inherit}.strum-active .strum-arrow,.strum-active .strum-stem{fill:#f5a623;stroke:#f5a623}.strum-compact{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:1.1rem;letter-spacing:.1em;color:var(--text-dim);margin:.2rem 0 0}.fp-page{max-width:46rem;margin:0 auto}.fp-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin:1rem 0}.fp-stage{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.fp-desc{color:var(--text-dim);font-size:.9rem;margin:.2rem 0 .5rem}.fp-scroll{overflow-x:auto;flex:1;min-width:16rem}.fp-tab{min-width:100%;height:auto}.fp-line{stroke:var(--border, #2a3138);stroke-width:1}.fp-string-label{fill:var(--text-dim);font-size:11px;font-family:SF Mono,ui-monospace,Menlo,monospace}.fp-dot{opacity:.9}.fp-finger-label{fill:#101418;font-size:11px;font-weight:700;text-anchor:middle}.fp-beat{fill:var(--text-dim);font-size:11px;text-anchor:middle}.fp-finger-p{fill:#f5a623;color:#f5a623}.fp-finger-i{fill:#7cc4ff;color:#7cc4ff}.fp-finger-m{fill:#4ade80;color:#4ade80}.fp-finger-a{fill:#c084fc;color:#c084fc}.fp-active .fp-dot{stroke:var(--text, #e8edf2);stroke-width:2}.fp-legend{display:flex;flex-wrap:wrap;gap:.8rem;font-size:.82rem;margin-top:.4rem}.fp-legend-item{font-weight:600}@media print{.app-header,.cifra-toolbar,.transition-hint-link,button{display:none!important}body,.app,.cifra-page{background:#fff!important;color:#000!important}.cifra-body{padding:0;font-size:11pt}.cifra-chord,.cifra-chord-line{color:#000!important;font-weight:700}.cifra-section{break-inside:avoid}.cifra-section-title{color:#000!important}.song-artist,.cifra-note,.capo-info{color:#333!important}}.lesson-diagram{margin:.9rem 0;padding:.8rem;border:1px solid #2a2f3a;border-radius:12px;background:#12141a;text-align:center}.lesson-diagram .ld-svg{width:100%;max-width:340px;height:auto}.lesson-diagram-caption{margin-top:.5rem;font-size:.85rem;color:#9aa3b2;line-height:1.4}.ld-skin{fill:#cf9f74;stroke:#00000038;stroke-width:1}.ld-badge{fill:#8b7cff}.ld-badge-dim{fill:#3a4150}.ld-badge-text{fill:#fff;font-size:13px;font-weight:700;text-anchor:middle}.ld-badge-text-dim{fill:#b9c0cc;font-size:12px;font-weight:700;text-anchor:middle}.ld-nut{fill:#e8eaf0}.ld-string{stroke:#cbd2dc;stroke-linecap:round}.ld-note{fill:#e8eaf0;font-size:12px;font-weight:700;text-anchor:start}.ld-label{fill:#9aa3b2;font-size:11px}.ld-label-r{text-anchor:end}.ld-caption-sm{fill:#9aa3b2;font-size:10px;text-anchor:middle}.ld-body{fill:#7a5a3f;stroke:#00000040;stroke-width:1.5}.ld-neck{fill:#a07a52;stroke:#00000030}.ld-hole{fill:#12141a;stroke:#0005}.ld-part{fill:#cbd2dc}.ld-fret{stroke:#e8eaf0;stroke-width:1;opacity:.7}.ld-callout line{stroke:#8b7cff;stroke-width:1;stroke-dasharray:2 2}.ld-callout text{fill:#cbd2dc;font-size:11px;font-weight:600;text-anchor:middle}.ld-plane{stroke:#4a5163;stroke-width:2;stroke-dasharray:4 4}.ld-arc{fill:none;stroke:#9aa3b2;stroke-width:1.5;stroke-dasharray:3 3}.ld-arrow line{stroke-width:6;stroke-linecap:round}.ld-arrow-down line,.ld-arrow-down path{stroke:#8b7cff;fill:#8b7cff}.ld-arrow-up line,.ld-arrow-up path{stroke:#2dd4bf;fill:#2dd4bf}.ld-arrow-label{font-size:12px;font-weight:700;text-anchor:middle}.ld-arrow-down .ld-arrow-label{fill:#8b7cff}.ld-arrow-up .ld-arrow-label{fill:#2dd4bf}.ld-inlay{fill:#9aa3b2}.ld-fretnum{fill:#9aa3b2;font-size:11px;font-weight:600;text-anchor:middle}.ld-fret-metal{stroke:#cbd2dc;stroke-width:3;stroke-linecap:round}.ld-path{fill:none;stroke:#8b7cff;stroke-width:2.5;stroke-dasharray:5 5;opacity:.7}.ld-milestone{fill:#262a36;stroke:#8b7cff;stroke-width:2}.ld-milestone-done{fill:#2dd4bf;stroke:#2dd4bf}.ld-check{fill:none;stroke:#101418;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ld-milestone-label{fill:#cbd2dc;font-size:10px;text-anchor:middle}.landing{color:var(--text);overflow-x:hidden}.landing-nav{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem}.landing-brand{font-weight:800;font-size:1.15rem}.landing-nav nav{display:flex;align-items:center;gap:1rem}.landing-nav-link{color:var(--text-dim);text-decoration:none;font-weight:600}.landing-nav-link:hover{color:var(--text)}.landing-cta-sm{text-decoration:none;font-weight:700;color:#101418;background:var(--accent);padding:.45rem 1rem;border-radius:999px}.landing-cta-sm:hover{background:var(--accent-strong)}.landing-hero{position:relative;max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center;padding:3.5rem 1.25rem 4.5rem}.landing-hero:before{content:"";position:absolute;inset:-20% 0 auto -10%;height:480px;background:radial-gradient(600px 300px at 20% 20%,#f0a83226,transparent 70%),radial-gradient(560px 320px at 80% 10%,#8b7cff22,transparent 70%);pointer-events:none;z-index:-1}.landing-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:700;color:var(--accent-strong);margin:0 0 .6rem}.landing-title{font-size:clamp(2rem,5vw,3.3rem);line-height:1.08;font-weight:800;margin:0 0 1rem;letter-spacing:-.01em}.landing-accent{background:linear-gradient(120deg,#8b7cff,#2dd4bf);-webkit-background-clip:text;background-clip:text;color:transparent}.landing-sub{color:var(--text-dim);font-size:1.12rem;line-height:1.55;max-width:40ch;margin:0 0 1.6rem}.landing-hero-cta{display:flex;flex-wrap:wrap;gap:.8rem}.landing-cta{text-decoration:none;font-weight:700;font-size:1.05rem;color:#101418;background:var(--accent);padding:.7rem 1.4rem;border-radius:12px;box-shadow:0 8px 24px #f0a83233;transition:transform .12s ease,background .12s ease}.landing-cta:hover{background:var(--accent-strong);transform:translateY(-1px)}.landing-cta-ghost{text-decoration:none;font-weight:600;color:var(--text);padding:.7rem 1.2rem;border-radius:12px;border:1px solid var(--surface-2)}.landing-cta-ghost:hover{border-color:var(--text-dim)}.landing-trust{margin:1.1rem 0 0;font-size:.9rem;color:var(--text-dim)}.landing-hero-art{display:flex;flex-direction:column;gap:1rem}.landing-coach-card{display:flex;align-items:center;gap:.8rem;background:var(--surface);border:1px solid #8b7cff44;border-left:3px solid #8b7cff;border-radius:14px;padding:.9rem 1.1rem;box-shadow:0 12px 30px #0006}.landing-coach-text{margin:.2rem 0 0;line-height:1.45}.landing-hero-diagram .lesson-diagram{margin:0}.landing-features{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;padding:1rem 1.25rem 3.5rem}.landing-feature{background:var(--surface);border:1px solid var(--surface-2);border-radius:14px;padding:1.3rem}.landing-feature-icon{font-size:1.9rem}.landing-feature h3{margin:.6rem 0 .4rem;font-size:1.1rem}.landing-feature p{margin:0;color:var(--text-dim);line-height:1.5;font-size:.95rem}.landing-how{max-width:1080px;margin:0 auto;padding:1.5rem 1.25rem 3.5rem}.landing-how h2{text-align:center;font-size:1.6rem;margin:0 0 1.6rem}.landing-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.landing-step{display:flex;gap:.8rem;align-items:flex-start}.landing-step-n{flex:0 0 auto;width:2.2rem;height:2.2rem;display:grid;place-items:center;border-radius:999px;background:var(--accent);color:#101418;font-weight:800}.landing-step h3{margin:.2rem 0 .3rem;font-size:1.05rem}.landing-step p{margin:0;color:var(--text-dim);line-height:1.5;font-size:.95rem}.landing-final{max-width:900px;margin:1rem auto 3rem;text-align:center;padding:3rem 1.5rem;border-radius:20px;border:1px solid var(--surface-2);background:radial-gradient(500px 240px at 50% 0%,#8b7cff22,transparent 70%),var(--surface)}.landing-final h2{font-size:1.8rem;margin:0 0 .6rem}.landing-final p{color:var(--text-dim);margin:0 0 1.6rem;line-height:1.5}.landing-footer{max-width:1080px;margin:0 auto;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;padding:1.5rem 1.25rem 3rem;border-top:1px solid var(--surface-2);color:var(--text-dim);font-size:.9rem}@media (max-width: 860px){.landing-hero{grid-template-columns:1fr;gap:1.6rem;padding-top:2.5rem}.landing-steps{grid-template-columns:1fr}}.auth-page{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--surface-2);border-radius:16px;padding:2rem}.auth-brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--text);text-decoration:none;margin-bottom:1.5rem}.auth-title{margin:0 0 .35rem;font-size:1.5rem}.auth-sub{margin:0 0 1.5rem;color:var(--text-dim);font-size:.95rem;line-height:1.5}.auth-form{display:grid;gap:1rem}.auth-field{display:grid;gap:.35rem}.auth-field span{font-size:.85rem;color:var(--text-dim)}.auth-field input{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:10px;padding:.6rem .75rem}.auth-field input:focus{outline:none;border-color:var(--accent)}.auth-error{margin:0;padding:.6rem .75rem;border-radius:10px;background:#e0604f24;border:1px solid var(--bad);color:var(--text);font-size:.9rem}.auth-submit{margin-top:.25rem;padding:.7rem 1rem}.auth-switch{margin:1.25rem 0 0;text-align:center;font-size:.9rem;color:var(--text-dim)}.auth-link{background:none;border:none;padding:0;color:var(--accent-strong);font-weight:600;cursor:pointer;text-decoration:underline}.auth-loading{padding:3rem 1rem;text-align:center;color:var(--text-dim)}.user-menu{display:inline-flex;align-items:center;gap:.5rem}.user-name{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--text-dim);max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-login{text-decoration:none;color:var(--accent-strong);border-color:var(--accent)}.admin-page h1{margin:0 0 .35rem}.admin-sub{margin:0 0 1.5rem;color:var(--text-dim);font-size:.95rem}.admin-error{padding:.6rem .75rem;border-radius:10px;background:#e0604f24;border:1px solid var(--bad);font-size:.9rem}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.92rem}.admin-table th,.admin-table td{padding:.6rem .75rem;border-bottom:1px solid var(--surface-2);text-align:left;vertical-align:middle}.admin-table th{color:var(--text-dim);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.admin-num{text-align:right;font-variant-numeric:tabular-nums}.admin-row-off{opacity:.5}.admin-name{display:block;font-weight:600}.admin-email{display:block;color:var(--text-dim);font-size:.82rem}.admin-tag{display:inline-block;margin:.25rem .3rem 0 0;padding:.1rem .4rem;border-radius:6px;background:var(--surface-2);color:var(--text-dim);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.admin-tag-role{color:var(--accent-strong)}.admin-actions{display:flex;flex-wrap:wrap;gap:.4rem;white-space:nowrap}.admin-actions .chip{font-size:.82rem;padding:.35rem .6rem}.user-admin-link{text-decoration:none;color:var(--accent-strong);border-color:var(--accent);font-size:.85rem;padding:.3rem .55rem}.auth-providers{display:grid;gap:.6rem;margin-bottom:1.25rem}.auth-provider{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.65rem 1rem;border:1px solid var(--surface-2);border-radius:10px;background:var(--surface-2);color:var(--text);font-weight:600;text-decoration:none}.auth-provider:hover{border-color:var(--accent)}.auth-provider-icon{display:grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--bg);font-weight:800;font-size:.85rem}.auth-provider-google .auth-provider-icon{color:#e8eaf0}.auth-provider-facebook .auth-provider-icon{color:#7ec8ff}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;color:var(--text-dim);font-size:.82rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--surface-2)}.bulk-sub{color:var(--text-dim);max-width:62ch;line-height:1.55}.bulk-sub code{background:var(--surface-2);padding:.05rem .3rem;border-radius:5px}.bulk-input{width:100%;font:.9rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:10px;padding:.75rem;resize:vertical;white-space:pre;overflow-wrap:normal;overflow-x:auto}.bulk-input:focus{outline:none;border-color:var(--accent)}.bulk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:1rem 0 1.5rem}.bulk-done{color:var(--good);font-weight:600}.bulk-card{border:1px solid var(--surface-2);border-radius:12px;padding:1rem;margin-bottom:1rem;background:var(--surface)}.bulk-card.bulk-gravado{border-color:var(--good)}.bulk-card.bulk-erro{border-color:var(--bad)}.bulk-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem}.bulk-card-head strong{font-size:1.05rem}.bulk-card-head label{display:inline-flex;align-items:center;gap:.4rem;margin-left:auto}.bulk-card-head select{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:.35rem .5rem;max-width:16rem}.bulk-label{color:var(--text-dim);font-size:.85rem}.bulk-warning{margin:0 0 .5rem;color:var(--warn);font-size:.88rem}.bulk-table{width:100%;border-collapse:collapse;font-size:.88rem}.bulk-table th,.bulk-table td{padding:.45rem .6rem;border-bottom:1px solid var(--surface-2);text-align:left;vertical-align:top}.bulk-table th{color:var(--text-dim);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.bulk-row-skip{opacity:.5}.bulk-muted{color:var(--text-dim)}.bulk-tag{margin-left:.4rem;padding:.05rem .35rem;border-radius:5px;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2);color:var(--text-dim)}.bulk-tag-nome{color:var(--good)}.bulk-tag-ordem{color:var(--warn)}.bulk-preview{display:block;max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim)}.admin-tools{margin:0 0 1.25rem}.admin-tools .chip{text-decoration:none;color:var(--text)}.week-plan{border:1px solid var(--surface-2);border-radius:14px;padding:1.1rem 1.25rem;margin:0 0 1.75rem;background:var(--surface)}.week-plan-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.week-plan-head h2{margin:0;font-size:1.15rem}.week-plan-head button{margin-left:auto}.week-plan-age{margin:.5rem 0 0;color:var(--text-dim);font-size:.82rem}.week-plan-empty{margin:.75rem 0 0;color:var(--text-dim);line-height:1.55;max-width:62ch}.week-plan-body{margin-top:.75rem;line-height:1.6}.week-plan-body p{margin:0 0 .4rem}.week-plan-day{padding-left:.75rem;border-left:2px solid var(--accent)}.play-heard{color:var(--warn)}.play-heard strong{color:var(--text)}.rootcause{border:1px solid var(--accent);border-radius:12px;padding:1rem 1.1rem;margin:1.25rem 0;background:#f0a8320f}.rootcause-head{display:flex;align-items:center;gap:.55rem}.rootcause-head h3{margin:0;font-size:1.02rem;line-height:1.4}.rootcause-hint{margin:.6rem 0 .9rem;color:var(--text-dim);font-size:.9rem;line-height:1.5;max-width:60ch}.rootcause-options{display:grid;gap:.45rem}.rootcause-options button{text-align:left;padding:.6rem .75rem;line-height:1.35}.rootcause-options button:hover{border-color:var(--accent)}.rootcause-more{margin-top:.6rem;background:none;border:none;padding:0;color:var(--text-dim);text-decoration:underline;cursor:pointer;font-size:.85rem}.rootcause-steps{margin:.75rem 0 0;padding-left:1.25rem;line-height:1.6}.rootcause-steps li{margin-bottom:.35rem}.rootcause-time{margin:.75rem 0 0;color:var(--text-dim);font-size:.88rem}.rootcause-actions{display:flex;gap:.5rem;margin-top:.9rem}.next-song{margin:0 0 1.75rem}.next-song h2{margin:0 0 .6rem;font-size:1.1rem}.next-song-hero{display:grid;gap:.2rem;padding:.9rem 1rem;border:1px solid var(--accent);border-radius:12px;background:#f0a83212;text-decoration:none;color:var(--text)}.next-song-hero:hover{background:#f0a8321f}.next-song-title{font-weight:700;font-size:1.05rem}.next-song-artist{color:var(--text-dim);font-size:.85rem}.next-song-reason{margin-top:.25rem;color:var(--accent-strong);font-size:.9rem}.next-song-chords{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}.next-song-chip{padding:.1rem .45rem;border-radius:6px;background:var(--surface-2);font-size:.8rem;font-weight:600}.next-song-list{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.3rem}.next-song-list li{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;font-size:.9rem}.next-song-muted{color:var(--text-dim);font-size:.85rem}.metronome-page{max-width:34rem}.metronome-sub{color:var(--text-dim);line-height:1.5}.metronome-display{display:flex;justify-content:center;gap:.5rem;margin:1.5rem 0}.metronome-beat{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;border:2px solid var(--surface-2);font-weight:700;font-size:1.1rem;color:var(--text-dim);transition:transform 60ms ease-out}.metronome-accent{border-color:var(--accent);color:var(--accent-strong)}.metronome-on{background:var(--accent);border-color:var(--accent);color:#221a05;transform:scale(1.12)}.metronome-bpm{display:flex;align-items:baseline;justify-content:center;gap:.6rem}.metronome-bpm strong{font-size:2.6rem;font-variant-numeric:tabular-nums;min-width:3.4ch;text-align:center}.metronome-bpm button{width:2.4rem;height:2.4rem;font-size:1.3rem;line-height:1;padding:0}.metronome-unit{color:var(--text-dim);font-size:.9rem}.metronome-slider{width:100%;margin:.75rem 0 1.25rem;accent-color:var(--accent)}.metronome-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.5rem}.metronome-tap{color:var(--accent-strong);font-weight:700}.metronome-group{border:1px solid var(--surface-2);border-radius:10px;padding:.75rem .9rem .9rem;margin:0 0 1rem}.metronome-group legend{padding:0 .35rem;color:var(--text-dim);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.metronome-chips{display:flex;flex-wrap:wrap;gap:.4rem}.metronome-hint{margin:.6rem 0 0;color:var(--text-dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.setlist-sub{color:var(--text-dim);max-width:62ch;line-height:1.55}.setlist-empty{color:var(--text-dim);padding:1rem;border:1px dashed var(--surface-2);border-radius:10px}.setlist-order{list-style:none;margin:1.25rem 0;padding:0;display:grid;gap:.4rem;counter-reset:setlist}.setlist-order li{display:grid;grid-template-columns:2rem 1fr auto;align-items:center;gap:.5rem .75rem;padding:.6rem .75rem;border:1px solid var(--surface-2);border-radius:10px;background:var(--surface)}.setlist-n{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--surface-2);font-weight:700;font-size:.85rem}.setlist-title{font-weight:600;color:var(--text);text-decoration:none}.setlist-title:hover{color:var(--accent-strong)}.setlist-meta{grid-column:2;color:var(--text-dim);font-size:.82rem}.setlist-buttons{grid-row:1 / span 2;grid-column:3;display:flex;gap:.25rem}.setlist-buttons button{width:2rem;height:2rem;padding:0;line-height:1}.setlist-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}.setlist-h2{font-size:1rem;color:var(--text-dim);margin-bottom:.6rem}.setlist-pool{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}@media print{.app-header,.setlist-actions,.setlist-pool,.setlist-h2,.setlist-buttons,.setlist-sub{display:none!important}.setlist-order li{border-color:#999}}.month-report .week-plan-body p{margin-bottom:.7rem}.metronome-sub{border-color:var(--accent);color:var(--accent-strong)}.bulk-tag-replace{color:var(--bad)}.admin-reset-link{display:flex;gap:.3rem;width:100%}.admin-reset-link input{flex:1;min-width:12rem;font:.78rem ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:.3rem .5rem}.yt-embed{margin:1rem 0;max-width:34rem}.yt-poster{position:relative;display:block;width:100%;padding:0;border:1px solid var(--surface-2);border-radius:12px;overflow:hidden;cursor:pointer;background:#000;line-height:0}.yt-poster img{width:100%;aspect-ratio:16 / 9;object-fit:cover;opacity:.85}.yt-poster:hover img{opacity:1}.yt-play{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:2.2rem;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.8)}.yt-frame{width:100%;aspect-ratio:16 / 9;border:0;border-radius:12px}.yt-caption{margin-top:.35rem;color:var(--text-dim);font-size:.85rem}.videos-module-row td{font-weight:700;color:var(--accent-strong);padding-top:1rem}.videos-input{font:.85rem ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:.35rem .5rem;width:12ch}.videos-input-title{font-family:inherit;width:100%;min-width:14rem}.teacher-classes{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:1rem 0 1.5rem}.teacher-new-class{display:inline-flex;gap:.4rem}.teacher-new-class input{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:.35rem .6rem;min-width:12rem}.teacher-panel{border:1px solid var(--surface-2);border-radius:14px;padding:1.1rem 1.25rem;background:var(--surface)}.teacher-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.teacher-panel-head h2{margin:0}.teacher-code{margin:.25rem 0 0;color:var(--text-dim)}.teacher-code strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em;color:var(--accent-strong)}.teacher-module{border:1px solid var(--surface-2);border-radius:10px;margin:.6rem 0;background:var(--bg)}.teacher-module-head{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem}.teacher-module-toggle{flex:1;text-align:left;background:none;border:none;font:inherit;font-weight:600;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:.5rem}.teacher-module-body{padding:.6rem .9rem .9rem;border-top:1px solid var(--surface-2)}.teacher-steps{margin:0 0 .9rem;padding-left:1.2rem}.teacher-steps li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.3rem}.teacher-step-form{display:grid;gap:.5rem}.teacher-step-form input,.teacher-step-form select,.teacher-step-form textarea{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:.45rem .6rem}.teacher-step-row{display:grid;grid-template-columns:1fr auto;gap:.5rem}.teacher-step-form button.primary{justify-self:start}.join-class{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0 1.25rem}.join-class-tag{padding:.25rem .6rem;border-radius:8px;background:var(--surface-2);font-size:.88rem}.join-class-form{display:inline-flex;align-items:center;gap:.4rem}.join-class-form input{font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;background:var(--bg);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:.35rem .6rem;width:9ch}.join-class-erro{color:var(--bad);font-size:.85rem}.module-class-badge{margin-left:.5rem;padding:.1rem .5rem;border-radius:8px;background:var(--surface-2);color:var(--accent-strong);font-size:.72rem;vertical-align:middle}.focus-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 1.5rem}.focus-label{color:var(--text-dim);font-size:.9rem}.focus-chip{text-decoration:none;color:var(--text);border-color:var(--accent)}.focus-chip:hover{color:var(--accent-strong)}.focus-attempts{color:var(--warn);font-size:.8rem}.ear-page{max-width:34rem}.ear-score{display:flex;gap:1rem;align-items:baseline;margin:1rem 0;font-weight:600}.ear-actions{margin-bottom:.75rem}.ear-options{display:grid;gap:.5rem;margin-bottom:1rem}.ear-option{padding:.8rem 1rem;font-size:1.05rem;text-align:left}.ear-option.ear-certa{border-color:var(--good);color:var(--good)}.ear-option.ear-errada{border-color:var(--bad);color:var(--bad)}.ear-feedback{margin:0 0 .9rem;color:var(--text-dim)}.ear-feedback-boa{color:var(--good)}.fret-i{margin:1rem 0}.fret-i-tools{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}.fret-i-hint{color:var(--text-dim);font-size:.82rem}.fret-i-board{overflow-x:auto;border:1px solid var(--surface-2);border-radius:10px;padding:.5rem;background:linear-gradient(180deg,#2a2119,#241c15)}.fret-i-row{display:grid;grid-template-columns:3rem repeat(12,minmax(2.4rem,1fr));gap:2px;margin-bottom:2px}.fret-i-numbers{margin-bottom:4px}.fret-i-number{text-align:center;color:var(--accent-strong);font-size:.75rem;font-weight:700}.fret-i-open{font:.72rem/1 inherit;border:1px dashed var(--surface-2);border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer;padding:.45rem .1rem}.fret-i-cell{position:relative;font:.72rem/1 inherit;border:none;border-left:2px solid #4a3b2a;background:transparent;color:#d8cdbb;cursor:pointer;padding:.45rem .1rem}.fret-i-cell:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#8a7a5f;pointer-events:none}.fret-i-cell.sus{color:#9a8d78}.fret-i-cell.on,.fret-i-open.on{background:var(--accent);color:#221a05;border-radius:6px;font-weight:700}.fret-i-caption{margin-top:.4rem;color:var(--text-dim);font-size:.82rem}.join-class-leave{margin-left:.4rem;border:none;background:none;color:var(--text-dim);cursor:pointer;padding:0 .1rem;font-size:.8rem}.join-class-leave:hover{color:var(--bad)}.update-banner{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:60;border:1px solid var(--accent);border-radius:999px;background:var(--surface-2);color:var(--text);padding:.55rem 1.1rem;font:inherit;font-size:.9rem;cursor:pointer;box-shadow:0 4px 18px #00000073}.update-banner:hover{background:var(--surface)}.teacher-panel-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:flex-start}.teacher-invite{margin-top:.35rem}.teacher-invite input{max-width:20rem}.teacher-section{margin:1.2rem 0;padding:.9rem 1rem;border:1px solid var(--surface-2);border-radius:12px;background:var(--surface)}.teacher-section h3{margin-top:0}.teacher-step-actions{display:inline-flex;gap:.3rem}.auth-invite{border:1px solid var(--accent);border-radius:10px;padding:.55rem .8rem;background:var(--surface-2)}.class-feed-announcement{margin:0 0 .5rem}.class-feed-done{opacity:.65}.class-feed-late{color:var(--bad)}.nav-burger{display:none}@media (max-width: 680px){.nav-burger{display:inline-flex;align-items:center;gap:.3rem}.app-header nav{display:none;width:100%;flex-direction:column;gap:.15rem}.app-header nav.nav-open{display:flex}.app-header nav a{padding:.55rem .8rem;border-radius:10px}}.verify-bar{margin:0 0 1rem;padding:.5rem .9rem;border:1px solid var(--warn);border-radius:10px;background:var(--surface)}.account-section{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--surface-2)}.account-danger{border-color:var(--bad);color:var(--bad)}.workout-done a{text-decoration:line-through;opacity:.6}.workout-complete{color:var(--good);font-weight:600}.workout-complete-msg{margin:.5rem 0 0;color:var(--good)}.workout-list input[type=checkbox]{accent-color:var(--good)}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.6rem}.badge-card{display:flex;align-items:center;gap:.5rem;padding:.6rem .7rem;border:1px solid var(--surface-2);border-radius:12px;background:var(--surface);opacity:.45;filter:grayscale(.8)}.badge-card.earned{opacity:1;filter:none;border-color:var(--accent)}.badge-icon{font-size:1.4rem}.badge-title{font-size:.85rem}.badge-toast{margin:0 0 1rem;padding:.6rem .9rem;border:1px solid var(--accent);border-radius:12px;background:var(--surface-2);animation:badge-pop .45s ease-out}@keyframes badge-pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.badge-toast{animation:none}}.reminder-card{margin:1.4rem 0;padding:.9rem 1rem;border:1px solid var(--surface-2);border-radius:12px;background:var(--surface)}.reminder-card h2{margin-top:0}.reminder-controls select{font:inherit}
