body{margin:0}:root{--bg:#12141a;--card-bg:#1c202c;--accent:#f59e0b;--correct:#10b981;--wrong:#ef4444;--text:#f3f4f6;--text-muted:#9ca3af;--string-color:#9ca3af;--fret-color:#6b7280}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#root{max-width:1500px;margin:0 auto;padding:20px 16px 60px}.loading-screen{text-align:center;color:var(--text-muted);padding:40px}.credits-page{min-height:100vh}.credits-wrap{max-width:760px;margin:0 auto;padding:20px 16px 80px}.credits-back{color:var(--text-muted);margin-bottom:24px;font-size:.9rem;text-decoration:none;display:inline-block}.credits-back:hover{color:var(--accent)}.credits-page h1{margin:6px 0 16px;font-size:1.9rem}.credits-page h2{color:var(--accent);margin:36px 0 14px;font-size:1.1rem}.credits-intro{color:var(--text-muted);max-width:60ch;line-height:1.6}.credits-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.credits-card{background:var(--card-bg);color:var(--text);border:1px solid #ffffff14;border-radius:10px;flex-direction:column;gap:6px;padding:16px 18px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.credits-card:hover{border-color:var(--accent);transform:translateY(-1px)}.credits-card-featured{border-color:var(--accent);background:linear-gradient(135deg, var(--card-bg), #f59e0b14);grid-column:1/-1}.credits-name{font-size:1.02rem;font-weight:700}.credits-role{color:var(--text-muted);font-size:.88rem}.credits-link{color:var(--accent);font-size:.85rem}.credits-footer{color:var(--text-muted);border-top:1px solid #ffffff14;margin-top:48px;padding-top:20px;font-size:.88rem;line-height:1.6}.gate-screen{text-align:center;max-width:620px;margin:30px auto 0}.gate-screen h1{margin-bottom:4px}.gate-attempts{justify-content:center;gap:8px;margin:14px 0 20px;display:flex}.gate-attempt-dot{background:var(--accent);border-radius:50%;width:12px;height:12px}.gate-attempt-dot.used{background:#374151}.choice-btn.wrong-pick{color:#fff;background:var(--wrong)!important}.auth-screen{text-align:center;max-width:380px;margin:60px auto 0}.auth-screen h1{margin-bottom:4px}.subtitle{color:var(--text-muted);margin-top:0}.auth-form{text-align:left;flex-direction:column;gap:14px;margin-top:24px;display:flex}.auth-form label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.auth-form input{background:var(--card-bg);color:var(--text);border:1px solid #2d3345;border-radius:6px;padding:10px 12px;font-size:1rem}.auth-error{color:var(--wrong);font-size:.85rem}.auth-info{color:var(--correct);font-size:.85rem}.auth-mode-toggle{color:var(--accent);background:0 0;margin-top:16px;padding:0;font-size:.85rem;text-decoration:underline}button{background:var(--accent);color:#000;cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-size:1rem;font-weight:700;transition:transform 60ms,filter 60ms}button:hover:not(:disabled){filter:brightness(1.08)}button:active:not(:disabled){filter:brightness(.9);transform:scale(.96)}button:disabled{opacity:.5;cursor:default}.link-btn{color:var(--accent);background:0 0;padding:8px;font-weight:500}.dashboard-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.dashboard-header h1{margin-bottom:2px}.dashboard-header-actions{align-items:center;gap:4px;display:flex}.drill-section{background:var(--card-bg);border:1px solid #2d3345;border-radius:12px;padding:20px}.drill-section h2{margin-top:0}.category-tabs{background:#1e293b;border-radius:10px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.category-tab{color:var(--text-muted);letter-spacing:.02em;background:0 0;border:none;border-radius:8px;flex:1;padding:12px 6px;font-size:.95rem;font-weight:700}.category-tab.active{background:var(--accent);color:#12151f}.drill-tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.drill-tab{color:var(--text-muted);background:#1e293b;border:2px solid #0000;border-radius:8px;flex:100px;padding:10px 6px;font-size:.85rem;font-weight:600}.drill-tab.active{border-color:var(--accent);color:#fff}.bpm-stepper{border:1px solid #2d3345;border-radius:6px;align-items:stretch;display:inline-flex;overflow:hidden}.bpm-stepper-btn{color:var(--text);background:#1e293b;border-radius:0;width:30px;padding:0;font-size:1rem;font-weight:700}.bpm-stepper-input{width:54px;color:var(--text);text-align:center;background:#1e293b;border:none;border-left:1px solid #2d3345;border-right:1px solid #2d3345;font-size:.9rem}.bpm-stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bpm-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.basket-pattern-select{color:var(--text);background:#1e293b;border:1px solid #2d3345;border-radius:6px;max-width:140px;padding:4px 6px;font-size:.75rem}.composer-bar-strip{gap:8px;margin-bottom:10px;padding-bottom:6px;display:flex;overflow-x:auto}.composer-bar-card{flex:none}.composer-bar-card-collapsed{min-width:90px;color:var(--text);background:#1e293b;border:1px solid #2d3345;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;display:flex}.composer-bar-card-collapsed:hover{filter:brightness(1.15)}.composer-bar-card-chord{font-weight:700}.composer-bar-card-timesig{color:var(--text-muted);font-size:.7rem}.composer-bar-card.expanded{border:1px solid var(--accent);background:#1e293b;border-radius:10px;flex-direction:column;gap:8px;min-width:280px;padding:12px;display:flex}.composer-bar-card-header{justify-content:space-between;align-items:center;display:flex}.composer-bar-card-actions{flex-wrap:wrap;gap:6px;display:flex}.composer-bar-card-add{min-width:90px;color:var(--accent);background:#1e293b;border:1px dashed #2d3345;border-radius:10px;padding:10px 16px;font-weight:700}.composer-bar-card-beatgroup.expanded{min-width:320px}.scale-guide-panel{margin-bottom:10px}.scale-guide-controls{margin-top:8px}.lick-templates-panel{margin-top:10px}.lick-template-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.lick-template-card{background:#1e293b;border:1px solid #2d3345;border-radius:10px;flex-direction:column;gap:6px;padding:12px;display:flex}.lick-template-card-title{font-size:.9rem;font-weight:700}.lick-template-card-tags{text-transform:uppercase;letter-spacing:.03em;color:var(--accent);font-size:.72rem}.lick-template-card-desc{color:var(--text-muted);flex:1;font-size:.8rem}.composer-workspace{align-items:flex-start;gap:20px;margin-top:12px;display:flex}.composer-workspace-col{flex:50%;min-width:0}.composer-workspace-fretboard{overflow-x:auto}.palette-tabs{background:#1e293b;border-radius:10px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.palette-tab{color:var(--text-muted);background:0 0;border:none;border-radius:8px;flex:1;padding:10px 4px;font-size:.8rem;font-weight:600}.palette-tab.active{background:var(--accent);color:#12151f}@media (width<=900px){.composer-workspace{flex-direction:column}.composer-workspace-col{flex:auto;width:100%}}.progression-quick-entry{align-items:flex-end}.progression-quick-entry-input{flex:1;min-width:200px}.progression-quick-entry-input input{width:100%;color:var(--text);background:#1e293b;border:1px solid #2d3345;border-radius:6px;padding:8px 10px;font-size:.9rem}.drill-library-link{justify-content:flex-end;margin-bottom:10px;display:flex}.drill-library-link .link-btn{padding:4px 8px;font-size:.85rem}.progression-builder{margin-bottom:16px}.section-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:6px;font-size:.75rem}.preset-row{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.preset-btn{color:var(--text-muted);background:#1e293b;border-radius:6px;padding:6px 10px;font-size:.78rem}.preset-btn.custom{border:1px solid #2d3345;align-items:center;gap:6px;padding:0 6px 0 0;display:inline-flex}.preset-btn-inner{color:var(--text-muted);background:0 0;padding:6px 4px 6px 10px;font-size:.78rem}.preset-remove{color:var(--text-muted);cursor:pointer;padding:0 4px;font-weight:700}.preset-remove:hover{color:var(--wrong)}.save-preset-row{gap:8px;margin-bottom:14px;display:flex}.save-preset-row input{color:var(--text);background:#1e293b;border:1px solid #2d3345;border-radius:6px;flex:1;padding:8px 10px;font-size:.85rem}.chord-add-row{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.chord-add-row input[type=text]{min-width:120px;color:var(--text);background:#1e293b;border:1px solid #2d3345;border-radius:6px;flex:1;padding:8px 10px;font-size:.9rem}.beats-field{flex-direction:column;align-items:center;gap:2px;display:flex}.beats-field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.65rem}.beats-input{width:56px;color:var(--text);text-align:center;background:#1e293b;border:1px solid #2d3345;border-radius:6px;padding:8px}.time-sig-row{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.time-sig-btn{color:var(--text-muted);background:#1e293b;border:1px solid #2d3345;border-radius:6px;padding:5px 9px;font-size:.75rem}.time-sig-btn.active{border-color:var(--accent);color:var(--accent)}.progression-bars{flex-wrap:wrap;gap:6px;display:flex}.bar-chip{cursor:pointer;background:#1e293b;border:1px solid #2d3345;border-radius:14px;align-items:center;gap:6px;padding:5px 8px 5px 12px;font-size:.82rem;font-weight:600;display:inline-flex}.bar-chip.current{border-color:var(--accent);color:var(--accent)}.bar-remove{color:var(--text-muted);padding:0 2px;font-weight:700}.bar-remove:hover{color:var(--wrong)}.section-label-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.section-label-row .section-label{margin-bottom:0}.randomize-btn{color:var(--accent);white-space:nowrap;background:#1e293b;border:1px solid #2d3345;border-radius:6px;padding:4px 10px;font-size:.72rem}.bar-position-select{color:var(--accent);background:#374151;border:none;border-radius:4px;padding:2px 3px;font-size:.72rem}.banner-position{color:var(--text-muted);font-size:.9rem;font-weight:500}.transport-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.transport-row button{color:#fff;background:#374151;padding:8px 14px;font-size:.85rem}.transport-row button.active{background:var(--accent);color:#000}.bpm-label{color:var(--text-muted);align-items:center;gap:6px;margin-left:auto;font-size:.82rem;display:flex}.bpm-input{width:56px;color:var(--text);text-align:center;background:#1e293b;border:1px solid #2d3345;border-radius:6px;padding:6px}.focus-toggle-btn{width:100%;color:var(--accent);background:#1e293b;border:1px dashed #2d3345;border-radius:8px;margin-bottom:14px;padding:8px;font-size:.8rem;display:block}.progression-drill.focus-mode,.key-context-drill.focus-mode,.strum-drill.focus-mode,.rhythm-trainer-drill.focus-mode{background:var(--bg)}.progression-drill.focus-mode .focus-toggle-btn,.key-context-drill.focus-mode .focus-toggle-btn,.strum-drill.focus-mode .focus-toggle-btn,.rhythm-trainer-drill.focus-mode .focus-toggle-btn{background:var(--accent);color:#000;border:none;font-weight:700}.tap-button{background:var(--accent);color:#000;cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:12px;width:100%;padding:28px;font-size:1.3rem;font-weight:700}.tap-button:active{filter:brightness(.85)}body:has(.focus-mode) #root{max-width:100%;padding:10px 10px 40px}.dashboard:has(.focus-mode) .drill-section{padding:10px}.focus-mode .fretboard-svg{min-width:100%}.landscape-hint{display:none}@media (width<=900px) and (orientation:portrait){.focus-mode .landscape-hint{border:1px solid var(--accent);color:var(--accent);background:#1e293b;border-radius:8px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;font-size:.85rem;display:flex}}.focus-key-label{color:var(--text);font-weight:700}.tab-upload-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.tab-textarea{width:100%;color:var(--text);resize:vertical;background:#1e293b;border:1px solid #2d3345;border-radius:8px;margin-bottom:10px;padding:10px;font-family:Courier New,monospace;font-size:.8rem}.tab-warnings{border-left-color:var(--wrong);font-size:.82rem}.tab-measure-strip{flex-wrap:wrap;gap:5px;max-height:100px;margin-bottom:14px;display:flex;overflow-y:auto}.tab-measure-chip-wrap{display:inline-flex;position:relative}.tab-measure-chip{color:var(--text-muted);background:#1e293b;border:1px solid #2d3345;border-radius:5px;padding:5px 9px;font-size:.75rem}.tab-measure-chip-clear{color:#ff8a8a;background:#3a2020;border:1px solid #5a2a2a;border-radius:50%;width:16px;height:16px;padding:0;font-size:.7rem;font-weight:700;line-height:14px;position:absolute;top:-7px;right:-7px}.tab-measure-chip-clear:hover{color:#fff;background:#5a2020}.tab-measure-chip.in-loop{border-color:var(--accent);color:var(--accent)}.tab-measure-chip.current{background:var(--accent);color:#000;font-weight:700}.tab-measure-chip.bar-done{color:#6fd996;border-color:#3b8f5c}.tab-measure-chip.bar-done.current{color:#fff;background:#3b8f5c}.tab-measure-chip.bar-switch{box-shadow:inset 0 0 0 2px #b98a2e}.progress-bar-track{background:#1e293b;border-radius:5px;height:10px;overflow:hidden}.progress-bar-fill{background:#3b8f5c;height:100%;transition:width .2s}.drone-slide-table{flex-direction:column;gap:4px;max-height:320px;margin-bottom:14px;display:flex;overflow-y:auto}.drone-slide-row{cursor:pointer;background:#1e293b;border:1px solid #2d3345;border-radius:6px;grid-template-columns:40px 1fr 1.4fr;align-items:center;gap:10px;padding:8px 10px;font-size:.82rem;display:grid}.drone-slide-row.is-match{border-color:var(--correct)}.drone-slide-row.is-match .slide-result{color:var(--correct);font-weight:700}.drone-slide-row:not(.is-match) .slide-result{color:var(--text-muted);font-style:italic}.drone-slide-row.active{outline:2px solid var(--accent)}.slide-shift{color:var(--accent);font-weight:700}.slide-notes{color:var(--text-muted);font-variant-numeric:tabular-nums}.near-nut-note{color:var(--text-muted);border-top:1px solid #ffffff1a;margin-top:8px;padding-top:8px;font-size:.82rem;font-style:italic}.transport-hint{color:var(--text-muted);margin-bottom:14px;font-size:.78rem;line-height:1.4}.current-chord-banner{border-left:4px solid var(--accent);background:#1e293b;border-radius:6px;margin-bottom:14px;padding:10px 16px;font-size:1rem}.progression-chord-row{align-items:flex-start;gap:20px;margin-bottom:4px;padding:10px 2px 16px;display:flex;overflow-x:auto}.progression-chord-row-item{opacity:.55;text-align:center;flex:none;transition:opacity .15s}.progression-chord-row-item.current{opacity:1}.strum-row.strum-row-compact{gap:4px;margin-top:8px;padding:6px}.strum-row.strum-row-compact .strum-arrow{font-size:1.1rem}.progression-strum-caption{text-align:center;margin-top:4px;font-size:.7rem;font-weight:400}.progression-strum-row-empty{color:var(--text-muted);opacity:.6;text-transform:uppercase;letter-spacing:.03em;margin-top:8px;font-size:.75rem;font-weight:400}.anchor-picker,.mode-picker{gap:8px;margin-bottom:12px;display:flex}.anchor-picker button,.mode-picker button{color:var(--text-muted);background:#1e293b;border:2px solid #0000;border-radius:8px;flex:1;padding:8px 6px;font-size:.82rem}.anchor-picker button.active,.mode-picker button.active{border-color:var(--accent);color:#fff}.box-picker{flex-wrap:wrap;gap:14px;margin-bottom:14px;display:flex}.box-picker label{color:var(--text-muted);align-items:center;gap:6px;font-size:.82rem;display:flex}.box-picker select{color:#fff;background:#374151;border:1px solid #2d3345;border-radius:6px;padding:5px 8px}.quiz-progress-row{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.qpb-label{color:var(--text-muted);align-items:center;gap:6px;font-size:.8rem;display:flex}.qpb-input{width:44px;color:var(--text);text-align:center;background:#1e293b;border:1px solid #2d3345;border-radius:6px;padding:4px}.bar-progress-dots{gap:5px;margin-left:auto;display:flex}.bar-progress-dots .dot{background:#374151;border-radius:50%;width:9px;height:9px}.bar-progress-dots .dot.filled{background:var(--accent)}.transition-tip{border:2px solid var(--accent);background:#1e293b;border-radius:10px;padding:20px}.transition-tip h3{color:var(--accent);margin-top:0}.transition-tip p{color:var(--text-muted);line-height:1.5}.bridge-note-list{margin:12px 0;padding-left:20px}.bridge-note-list li{margin-bottom:10px;line-height:1.4}.bridge-note-character{color:var(--text-muted);font-style:italic}.session-footer{background:var(--card-bg);border:1px solid #2d3345;border-radius:10px;justify-content:space-between;align-items:center;margin-top:20px;padding:14px 18px;display:flex}.drill-hud{color:var(--text-muted);font-size:.85rem}.hud-stats{align-items:center;gap:12px;display:flex}.stopwatch{font-variant-numeric:tabular-nums;color:var(--accent);font-size:.9rem;font-weight:700}.stopwatch.slow{color:var(--wrong)}.points{color:var(--accent);font-size:.9rem;font-weight:700}.streak{color:#fb923c;font-size:.9rem;font-weight:700}.level-picker{gap:8px;margin-bottom:14px;display:flex}.level-btn{color:var(--text-muted);background:#1e293b;border:2px solid #0000;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 4px;font-size:.85rem;font-weight:600;display:flex}.level-btn.active{border-color:var(--accent);color:#fff}.level-btn.slow.active{border-color:#10b981}.level-btn.medium.active{border-color:#f59e0b}.level-btn.fast.active{border-color:#ef4444}.level-time{color:var(--text-muted);font-size:.7rem}.countdown-bar-track{background:#1e293b;border-radius:3px;height:6px;margin-bottom:14px;overflow:hidden}.countdown-bar-fill{background:var(--accent);height:100%;transition:width .1s linear}.countdown-bar-fill.urgent{background:var(--wrong)}.speedrun-hud{color:var(--text-muted);align-items:center;gap:14px;margin-bottom:14px;font-size:.9rem;display:flex}.stopwatch-run{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700}.stop-btn{color:#fff;background:#374151;margin-left:auto;padding:6px 14px;font-size:.85rem}.speedrun-idle{text-align:center;background:#1e293b;border-radius:10px;padding:20px}.speedrun-idle p{color:var(--text-muted);margin-top:0}.speedrun-summary{text-align:center;background:#1e293b;border-radius:10px;padding:24px 20px}.speedrun-summary h3{margin-top:0}.summary-grid{justify-content:center;gap:28px;margin:18px 0;display:flex}.summary-grid>div{flex-direction:column;gap:4px;display:flex}.summary-value{color:var(--accent);font-size:1.4rem;font-weight:700}.summary-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.prompt-box{border-left:4px solid var(--accent);background:#1e293b;border-radius:6px;margin-bottom:16px;padding:12px 16px;font-size:.92rem;line-height:1.4}.technique-tips{border-left-color:#d97706;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.technique-tips-list{flex-direction:column;gap:6px;display:flex}.technique-tip strong{color:#fbbf24}.technique-tips .link-btn{white-space:nowrap;flex-shrink:0}.fret-diagram,.fretboard-svg{--headstock:#3a2a1c;--wood-edge:#1c1410;--peg:#d1d5db;--wood:#4a3626;--inlay:#e5d9c3;--nut:#e5e7eb;--fret-wire:#a8a29e;width:100%;height:auto;margin-bottom:20px}.key-picker{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.key-picker label{color:var(--text-muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.key-picker select{color:#fff;background:#374151;border:1px solid #2d3345;border-radius:6px;padding:6px 10px;font-size:.95rem}.key-notes-line{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.key-note-chip{background:#1e293b;border:1px solid #2d3345;border-radius:16px;align-items:center;gap:5px;padding:4px 10px 4px 8px;font-size:.9rem;font-weight:600;display:inline-flex}.key-note-chip .degree{color:var(--text-muted);background:#374151;border-radius:50%;justify-content:center;align-items:center;width:15px;height:15px;font-size:.65rem;font-weight:700;display:inline-flex}.context-toggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:8px;margin-bottom:16px;font-size:.85rem;display:flex}.context-toggle input{width:16px;height:16px}.answer-row{flex-direction:column;gap:18px;display:flex}.choice-group-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:.8rem}.choice-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.choice-btn{color:#fff;background:#374151;padding:12px 4px;font-size:1rem}.choice-btn.selected{outline:2px solid var(--accent)}.choice-btn.correct{color:#fff;background:var(--correct)!important}.feedback-line{margin-top:14px;font-weight:600}.feedback-line.correct{color:var(--correct)}.feedback-line.wrong{color:var(--wrong)}@media (width<=420px){.choice-grid{grid-template-columns:repeat(2,1fr)}}.progression-bars{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.progression-bar-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.progression-bar-row .bar-index{opacity:.7;min-width:3.5rem;font-size:.85rem}.chord-input{width:5rem;padding:.3rem .5rem}.beats-input{width:3.5rem;margin-left:.3rem;padding:.3rem .5rem}.melody-note-picker{margin:.8rem 0}.note-choices{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;display:flex}.choice-btn.chord-tone-choice{border-color:var(--accent)}.voice-leading-tip{opacity:.85;margin-top:.4rem;font-style:italic}.tab-output{white-space:pre;background:#00000040;border-radius:6px;padding:.8rem;font-family:monospace;font-size:.85rem;overflow-x:auto}.live-tab-sheet-scroll{background:#00000040;border-radius:6px;margin-bottom:.8rem;padding:.8rem;overflow-x:auto}.live-tab-sheet{white-space:pre;width:max-content;font-family:monospace;font-size:.85rem}.tab-row{display:flex}.tab-row-label{color:var(--text-muted)}.tab-bar-chunk{transition:background-color .15s}.tab-bar-chunk.active-bar{background:#f5a62340;border-radius:3px;box-shadow:0 0 0 1px #f5a62380}.saved-songs-list{flex-direction:column;gap:.3rem;margin-top:.5rem;display:flex}.saved-song-row{align-items:center;gap:.6rem;display:flex}.library-progress-line{color:var(--text-muted);align-items:center;gap:.75rem;margin-top:.2rem;font-size:.75rem;display:flex}.library-group{margin-bottom:1.2rem}.library-group>summary{cursor:pointer}.library-group>summary.section-label{margin-bottom:6px}.library-subgroup{border-left:2px solid #2a3548;margin:.5rem 0 .5rem .75rem;padding-left:.75rem}.library-subgroup summary{cursor:pointer;color:var(--text-muted);font-size:.85rem}.library-subgroup .saved-songs-list{margin-top:.4rem}.picker-slot-banner{margin-bottom:.4rem;font-weight:600}.technique-row{flex-wrap:wrap;align-items:center;gap:.35rem;margin:.4rem 0;display:flex}.technique-row span{opacity:.7;margin-right:.2rem;font-size:.85rem}.technique-btn{padding:.25rem .5rem;font-size:.8rem}.bar-beat-groups{flex-direction:column;gap:.6rem;margin-bottom:1rem;display:flex}.bar-beat-group{border:1px solid #ffffff1f;border-radius:8px;padding:.5rem .6rem}.collapsible-section{margin:1.2rem 0}.collapsible-section-header{width:100%;color:var(--text,#fff);background:#ffffff0a;border:1px solid #ffffff1f;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem .8rem;font-size:1rem;font-weight:700;display:flex}.collapsible-section-caret{color:var(--accent);font-size:.85rem}.collapsible-section-body{padding:.6rem .2rem 0}.bar-beat-group-label{opacity:.8;margin-bottom:.35rem;font-size:.85rem;font-weight:600}.bar-beat-group-label-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.bar-beat-group-label-row .bar-beat-group-label{margin-bottom:.35rem}.bar-beat-strum-preview{gap:4px;display:flex}.bar-beat-strum-preview .strum-arrow{color:var(--text-muted);font-size:.95rem;font-weight:700}.bar-beat-strum-preview .strum-arrow.active{color:var(--accent)}.bar-beat-group .tab-measure-strip{margin-bottom:0}.chord-diagram-wrap{justify-content:center;margin:.6rem 0;display:flex}.chord-diagram-wrap-compact{justify-content:flex-start;margin:0 0 .4rem}.chord-diagram{max-width:100%}.chord-library-jumpnav{z-index:5;background:var(--bg,#0f1115);border-bottom:1px solid #ffffff1f;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;padding:.5rem 0;display:flex;position:sticky;top:0}.chord-library-jumpnav .link-btn{border:1px solid #ffffff1f;border-radius:999px;padding:4px 12px}.chord-picker-panel{background:#ffffff05;border:1px solid #ffffff1f;border-radius:8px;margin:.6rem 0;padding:.6rem .8rem}.arpeggiate-panel{flex-direction:column;gap:.3rem;display:flex}.technique-card-face{background:#f5a6230f;border:1px dashed #fff3;border-radius:6px;justify-content:center;align-items:center;width:100%;height:64px;display:flex}.technique-card-symbol{color:var(--accent);font-size:1.4rem;font-weight:700}.chord-library-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem;margin:.8rem 0;display:grid}.chord-library-tile{background:#ffffff08;border:1px solid #ffffff1f;border-radius:8px;flex-direction:column;align-items:center;gap:.3rem;padding:.6rem .4rem;display:flex}.chord-library-tile-actions{flex-direction:column;align-items:center;gap:.2rem;width:100%;display:flex}.chord-basket-row{background:#ffffff05;border:1px dashed #fff3;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.6rem;padding:.5rem .6rem;display:flex}.chord-basket-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.75rem}.chord-basket-slot{align-items:center;gap:.15rem;display:flex}.basket-remove-btn{color:var(--text-muted);background:0 0;border:none;padding:0 .2rem;font-size:.9rem;line-height:1}.basket-remove-btn:hover{color:#ff6b6b}.basket-fill-btn{color:var(--text-muted);background:0 0;border:1px solid #ffffff26;border-radius:4px;padding:.15rem .35rem;font-size:.85rem;line-height:1}.basket-fill-btn:hover:not(:disabled){color:var(--accent,#d9a441);border-color:var(--accent,#d9a441)}.basket-fill-btn:disabled{opacity:.35;cursor:default}.chord-basket-empty{color:var(--text-muted);font-size:.8rem;font-style:italic}.ds-steps-list{flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:.4rem;display:flex}.ds-step-arrow{color:var(--text-muted);margin-right:.3rem}.ds-step-chip{background:#ffffff08;border:1px solid #ffffff26;border-radius:6px;align-items:center;gap:.3rem;padding:.2rem .4rem;font-size:.85rem;display:inline-flex}.ds-step-remove{color:var(--text-muted);background:0 0;border:none;padding:0 .1rem;font-size:.9rem;line-height:1}.ds-step-remove:hover{color:#ff6b6b}.chord-library-sublabel{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}.fretboard-click-target:hover{fill:#f5a62347}.tab-practice-view{background:var(--bg,#0f1115);z-index:500;color:var(--text,#fff);flex-direction:column;display:flex;position:fixed;inset:0}.tab-practice-toolbar{border-bottom:1px solid #ffffff26;flex-wrap:wrap;align-items:center;gap:1rem;padding:.8rem 1.2rem;display:flex}.tab-practice-bpm{font-size:1.1rem;font-weight:700}@media (width<=480px){.tab-practice-toolbar{gap:.5rem;padding:.5rem .6rem;font-size:.85rem}.tab-practice-toolbar input,.tab-practice-toolbar select,.tab-practice-toolbar button{padding:.3rem .5rem;font-size:.85rem}.tab-practice-bpm{font-size:.95rem}}@media (orientation:landscape) and (height<=500px){.tab-practice-toolbar{-webkit-overflow-scrolling:touch;white-space:nowrap;flex-wrap:nowrap;flex-shrink:0;gap:.5rem;padding:.35rem .6rem;font-size:.8rem;overflow-x:auto}.tab-practice-toolbar>*{flex:none}.tab-practice-toolbar input,.tab-practice-toolbar select,.tab-practice-toolbar button{padding:.25rem .4rem;font-size:.8rem}.tab-practice-bpm{font-size:.85rem}.tab-practice-strip{padding:.75rem 1rem}.tab-practice-chord-panel{-webkit-overflow-scrolling:touch;flex-flow:row;flex-shrink:0;justify-content:flex-start;align-items:center;gap:.75rem;padding:.4rem .8rem;overflow-x:auto}.tab-practice-chord-panel svg.chord-diagram{flex-shrink:0;width:auto;height:130px}.tab-practice-chord-panel .strum-scroll-viewport{flex:none;width:min(45vw,320px);height:90px}.tab-practice-chord-panel .strum-scroll-slot .strum-arrow{font-size:1.7rem}.tab-practice-chord-panel .strum-focus-bpm{white-space:normal;max-width:110px;font-size:.72rem}.tab-practice-view>.prompt-box{display:none}}.metronome-light{background:#f5a62326;border:2px solid #f5a62366;border-radius:50%;width:22px;height:22px;transition:background 50ms,box-shadow 50ms;display:inline-block}.metronome-light.lit{background:var(--accent,#f5a623);box-shadow:0 0 16px 4px var(--accent,#f5a623)}.tab-practice-strip{flex:1;align-items:flex-start;gap:1.5rem;min-height:0;padding:2rem 3rem;display:flex;overflow:auto hidden}.tab-practice-chord-panel{border-top:1px solid #ffffff1a;flex-wrap:wrap;flex:none;justify-content:center;align-items:center;gap:2rem;padding:1rem 2rem;display:flex}.chord-sheet-practice-body{flex:1;width:100%;max-width:900px;margin:0 auto;padding:2rem 3rem 3rem;overflow-y:auto}.chord-sheet-chord-line{gap:1.2rem;min-height:1.6em;margin-top:.6em;display:flex}.chord-sheet-chord-chip{color:var(--accent,#f5a623);font-size:1.15rem;font-weight:700}.chord-sheet-chord-line.active .chord-sheet-chord-chip{background:var(--accent,#f5a623);color:#1a1200;border-radius:6px;padding:.05em .4em}.chord-sheet-lyric-line{white-space:pre-wrap;color:var(--text,#fff);font-size:1.15rem;line-height:1.5}.chord-sheet-blank-line{height:.8em}.tab-practice-bar{min-width:calc(var(--beats) * var(--beat-width));border:1px solid #ffffff1a;border-radius:10px;flex:none;padding:.6rem}.tab-practice-bar.in-loop{border-color:var(--accent,#f5a623)}.tab-practice-bar.bar-switch{box-shadow:inset 0 0 0 2px #b98a2e}.switch-badge{opacity:.85;font-size:.7rem;font-weight:500}.switch-badge-strum{color:#6fa8dc}.switch-badge-lick{color:#e69138}.tab-practice-bar-label{opacity:.85;margin-bottom:.4rem;font-size:1.1rem;font-weight:700}.tab-practice-diagrams{grid-template-columns:repeat(var(--beats), var(--beat-width));min-height:1px;display:grid}.tab-practice-diagram-slot{justify-content:center;display:flex}.tab-practice-notenames{grid-template-columns:repeat(var(--beats), var(--beat-width));margin:.3rem 0;display:grid}.tab-practice-notename{text-align:center;color:var(--accent,#f5a623);font-size:1.1rem;font-weight:700}.tab-practice-notename.simplified-beat{color:#ff8a3d;-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.tab-practice-staff{flex-direction:column;display:flex}.tab-practice-string-row{border-top:1px solid #ffffff40;align-items:center;display:flex}.tab-practice-string-row:last-child{border-bottom:1px solid #ffffff40}.tab-practice-string-label{opacity:.9;text-align:center;z-index:2;background:var(--bg,#0f1115);flex:none;width:1.4rem;font-size:.85rem;position:sticky;left:0}.tab-practice-cell{flex:0 0 var(--beat-width);text-align:center;padding:.35rem 0;font-family:monospace;font-size:1.15rem;font-weight:700}.tab-practice-cell.has-note{color:#fff}.tab-practice-cell.active-beat{background:#f5a62340;border-radius:4px}.metronome-light.downbeat.lit{background:#fff;border-color:#fff;box-shadow:0 0 22px 8px #fff}.tab-practice-bar-label-btn{color:inherit;font:inherit;cursor:pointer;text-align:center;background:0 0;width:100%;padding:0;font-weight:700}.tab-practice-bar-label-btn:hover{color:var(--accent,#f5a623)}.tuner-readout{background:var(--card-bg);text-align:center;border-radius:12px;margin:16px 0;padding:24px}.tuner-note{color:var(--text);font-size:3rem;font-weight:800}.tuner-note.in-tune{color:var(--correct)}.tuner-hz{color:var(--text-muted);margin-bottom:20px}.tuner-meter{background:linear-gradient(to right, var(--wrong), var(--correct) 45%, var(--correct) 55%, var(--wrong));border-radius:6px;max-width:400px;height:10px;margin:0 auto;position:relative}.tuner-meter-center{background:var(--text-muted);width:2px;height:18px;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.tuner-meter-needle{background:var(--text);border-radius:2px;width:4px;height:26px;transition:left 50ms linear;position:absolute;top:-8px;transform:translate(-50%)}.tuner-meter-needle.in-tune{background:var(--correct)}.tuner-meter-labels{max-width:400px;color:var(--text-muted);letter-spacing:.03em;justify-content:space-between;margin:6px auto 0;font-size:.8rem;font-weight:700;display:flex}.tuner-meter-labels span:nth-child(2){color:var(--correct)}.lesson1-lock-ring{border:6px solid var(--text-muted);border-radius:50%;align-items:flex-end;width:120px;height:120px;margin:16px auto;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.lesson1-lock-fill{width:100%;transition:height 80ms linear,background .15s}.lesson1-complete{text-align:center;padding:24px 0}.lesson1-xp-float{color:var(--correct);margin-bottom:8px;font-size:1.6rem;font-weight:800;animation:.6s ease-out lesson1-xp-rise}@keyframes lesson1-xp-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.spider-fretboard-diagram{max-width:100%;margin:16px auto;display:block}.spider-drill .section-label,.spider-recall-drill .section-label{font-size:1rem}.spider-drill .prompt-box,.spider-recall-drill .prompt-box{font-size:1.15rem;line-height:1.5}.spider-drill .tuner-note,.spider-recall-drill .tuner-note{font-size:2.2rem}.spider-drill .tuner-hz,.spider-recall-drill .tuner-hz{font-size:1rem}.spider-drill .choice-btn,.spider-recall-drill .choice-btn{padding:14px 22px;font-size:1.2rem}.spider-pulse-ring{transform-origin:50%;animation:.6s ease-out infinite spider-pulse}@keyframes spider-pulse{0%{r:27;opacity:1}to{r:40;opacity:0}}.tuner-level-row{align-items:center;gap:10px;max-width:400px;margin:0 auto 20px;display:flex}.tuner-level-label{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.tuner-level-bar{background:#000;border-radius:4px;flex:1;height:8px;overflow:hidden}.tuner-level-fill{background:var(--accent);height:100%;transition:width 50ms linear}.bend-game-stage{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:32px;margin-top:16px;display:flex}.balloon-wrap{flex-shrink:0;width:140px;position:relative}.balloon-svg{width:100%;height:auto}.doorknob-wrap{text-align:center;flex-shrink:0;width:140px;position:relative}.doorknob-svg{width:100%;height:auto}.doorknob-grip{transform-origin:60px 84px;animation:2.6s cubic-bezier(.45,0,.2,1) infinite doorknobTurn}@keyframes doorknobTurn{0%{transform:rotate(0)}18%{transform:rotate(0)}62%{transform:rotate(190deg)}78%{transform:rotate(190deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.doorknob-grip{animation:none}}.doorknob-caption{color:var(--text-muted);margin-top:6px;font-size:.8rem;font-weight:600}.balloon-pop-label{color:#fff;text-shadow:0 1px 4px #0009;white-space:nowrap;font-size:1.1rem;font-weight:800;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.bend-game-info{flex:1;min-width:260px;max-width:420px}.bend-target-line{color:var(--text);margin-bottom:8px;font-size:1.1rem}.bend-target-line.flash-good{color:var(--correct)}.bend-target-line.flash-off{color:var(--wrong)}.bend-hold-bar{background:#000;border-radius:6px;max-width:400px;height:10px;margin:14px auto 0;overflow:hidden}.bend-hold-fill{background:var(--accent);height:100%;transition:width 60ms linear,background .15s}.bend-hold-fill.in-tune{background:var(--correct)}.bend-hear-row{gap:8px;margin-bottom:10px;display:flex}.bend-round-count{color:var(--text-muted);margin-top:14px;font-size:.9rem}.bend-game-over{color:var(--correct);margin-top:10px;font-size:1.2rem;font-weight:700}.capo-active-note{color:var(--accent);margin-top:-6px;margin-bottom:8px;font-size:.85rem;font-weight:600;display:block}.bend-level-picker{margin-bottom:16px}.bend-level-picker .choice-btn{padding:10px 6px;font-size:.82rem}.bend-meta-line{color:var(--text-muted);margin-bottom:10px;font-size:.85rem}.bend-mode-picker{margin-bottom:10px}.bend-mode-picker .choice-btn{padding:10px 6px;font-size:.82rem}.bend-tutorial{border-left:4px solid var(--accent);background:#1e293b;border-radius:6px;margin-bottom:14px;padding:14px 18px}.bend-tutorial h3{color:var(--text);margin:14px 0 4px;font-size:.95rem}.bend-tutorial h3:first-child{margin-top:0}.bend-tutorial p{color:var(--text-muted);margin:0 0 4px;font-size:.9rem;line-height:1.5}.bend-session-hud{align-items:center;gap:14px;margin-bottom:10px;display:flex}.bend-hud-item{color:var(--text);background:#1e293b;border-radius:6px;padding:6px 12px;font-size:.9rem;font-weight:700}.bend-hud-best{color:var(--accent)}.bend-vibrato-prompt{border-left-color:#8e44ad;margin:10px 0}.bend-new-best-flash{color:#1a1200;text-align:center;background:linear-gradient(90deg,#f59e0b,#fbbf24);border-radius:8px;margin-bottom:10px;padding:10px 16px;font-weight:800;animation:.3s ease-out bendNewBestPop}@keyframes bendNewBestPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.vibrato-meter{background:linear-gradient(to right, var(--wrong), var(--correct) 45%, var(--correct) 55%, var(--wrong));border-radius:6px;max-width:400px;height:10px;margin:12px auto 0;transition:background-color .15s;position:relative}.vibrato-meter-center{background:var(--text-muted);width:2px;height:18px;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.vibrato-meter.flash-good{box-shadow:0 0 0 3px var(--correct)}.vibrato-meter.flash-off{box-shadow:0 0 0 3px var(--wrong)}.strum-pattern-picker{margin-bottom:14px}.strum-pattern-picker .choice-btn{flex-direction:column;gap:2px;width:100%;padding:10px 6px;font-size:.82rem;display:flex}.strum-pattern-btn-wrap{display:block;position:relative}.strum-pattern-btn-wrap.is-custom .choice-btn{padding-right:22px}.strum-pattern-delete{color:var(--wrong);cursor:pointer;font-size:1rem;font-weight:800;line-height:1;position:absolute;top:4px;right:8px}.strum-genre-tag{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.68rem;font-weight:500}.current-bpm-box{background:var(--surface-2,#ffffff0f);color:var(--text-muted);border-radius:6px;align-items:center;gap:.3rem;margin-left:.3rem;padding:.3rem .6rem;font-size:.85rem;display:inline-flex}.current-bpm-box strong{color:var(--text)}.strum-row{border-radius:8px;gap:6px;margin-top:16px;padding:10px;transition:box-shadow .1s;display:grid}.strum-row.flash-good{box-shadow:0 0 0 3px var(--correct)}.strum-row.flash-off{box-shadow:0 0 0 3px var(--wrong)}.strum-slot{aspect-ratio:1;background:#1e293b;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;display:flex}.strum-slot.downbeat{background:#24304a}.strum-slot.active{border-color:var(--accent)}.strum-slot.builder-slot{cursor:pointer}.strum-slot.builder-slot:hover{border-color:var(--text-muted)}.strum-arrow{color:var(--text-muted);font-size:2.4rem;font-weight:800}.strum-slot.active .strum-arrow{color:var(--accent)}.strum-beat-labels{gap:6px;margin-top:4px;display:grid}.strum-beat-labels span{text-align:center;color:var(--text-muted);font-size:.75rem}.strum-builder{border-left:4px solid var(--accent);background:#1e293b;border-radius:6px;margin-bottom:14px;padding:14px 16px}.strum-focus-stage{flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:80vh;display:flex}.strum-focus-chord :is(svg){max-width:260px;height:auto}.strum-flash-arrow{color:var(--text-muted);font-size:min(40vw,220px);font-weight:900;line-height:1;transition:color 80ms,transform 80ms}.strum-flash-arrow.sym-D,.strum-flash-arrow.sym-U{color:var(--accent);transform:scale(1.08)}.strum-flash-arrow.sym-X{color:var(--wrong);transform:scale(1.08)}.strum-flash-arrow.sym-rest{color:var(--text-muted);opacity:.4;transform:scale(1)}.strum-scroll-viewport{background:#1e293b;border-radius:12px;width:min(90vw,700px);height:140px;position:relative;overflow:hidden}.strum-scroll-playhead{background:var(--accent);z-index:2;border-radius:2px;width:4px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.strum-scroll-strip{height:100%;display:grid;position:absolute;top:0;left:calc(50% - 42px)}.strum-scroll-slot{justify-content:center;align-items:center;display:flex}.strum-scroll-slot .strum-arrow{color:var(--text-muted);font-size:3rem;font-weight:800}.strum-scroll-slot.active .strum-arrow{color:var(--accent)}.strum-focus-controls{align-items:center;gap:14px;display:flex}.strum-focus-bpm{color:var(--text-muted);font-weight:600}.melody-transcribe-drill{flex-direction:column;gap:16px;display:flex}.melody-transcribe-drill .drill-blurb{color:var(--text-muted);max-width:640px}.method-steps{background:var(--card-bg);border-radius:10px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.method-step strong{color:var(--accent)}.method-step p{color:var(--text-muted);margin:4px 0 0}.song-picker{flex-direction:column;gap:10px;display:flex}.song-list,.new-song-form{flex-wrap:wrap;gap:8px;display:flex}.new-song-form input{flex:1;min-width:200px}.song-detail{background:var(--card-bg);border-radius:10px;flex-direction:column;gap:12px;padding:16px;display:flex}.chord-progression{color:var(--text-muted)}.badge{background:var(--accent);color:#1c1410;border-radius:6px;margin-left:8px;padding:2px 8px;font-size:.85rem;font-weight:700}.phrase-list{flex-direction:column;gap:6px;display:flex}.phrase-row{background:#ffffff08;border-radius:8px;align-items:center;gap:10px;padding:6px 10px;display:flex}.phrase-row.active{outline:2px solid var(--accent)}.phrase-select{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;flex:1;font-size:.95rem}.phrase-score{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.secondary-btn{background:var(--card-bg);border:1px solid var(--accent);color:var(--accent);cursor:pointer;border-radius:8px;align-self:flex-start;padding:8px 14px}.author-panel,.practice-panel{flex-direction:column;gap:10px;display:flex}.note-chip-row{flex-wrap:wrap;gap:8px;display:flex}.note-chip{background:#ffffff0a;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:.82rem;display:flex}.note-chip select{padding:1px 3px;font-size:.8rem}.checkbox-row{color:var(--text-muted);align-items:center;gap:8px;width:fit-content;font-size:.9rem;display:flex}.author-panel input{max-width:360px}.fretboard-actions{flex-wrap:wrap;gap:8px;display:flex}.practice-panel .hint{color:var(--text-muted);font-size:.9rem}.result-line{font-size:1.05rem;font-weight:600}.tutorial-click-blocker{z-index:1000;background:#00000073;position:fixed;inset:0}.tutorial-spotlight{z-index:1001;box-shadow:0 0 0 9999px #00000073, 0 0 0 3px var(--accent), 0 0 24px 4px #f59e0b99;pointer-events:none;border-radius:8px;transition:top .25s,left .25s,width .25s,height .25s;position:fixed}.tutorial-overlay-floating{z-index:1002;width:min(480px,92vw);position:fixed;left:50%;transform:translate(-50%)}.tutorial-panel-bottom{bottom:24px}.tutorial-panel-top{top:24px}.tutorial-panel{background:var(--card-bg);border:1px solid var(--accent);border-radius:12px;width:100%;max-width:480px;padding:24px}.tutorial-panel h3{margin:0 0 4px}.tutorial-step-count{color:var(--text-muted);margin:0 0 14px;font-size:.85rem}.tutorial-panel h4{color:var(--accent);margin:0 0 8px}.tutorial-panel p{margin:0 0 16px;line-height:1.5}.tutorial-panel-actions{justify-content:space-between;gap:10px;display:flex}.tutorial-offer-banner{border:1px solid var(--accent);background:#f59e0b1f;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;padding:10px 16px;display:flex}.tutorial-offer-actions{flex-shrink:0;gap:8px;display:flex}.warmup-prompt{border:1px solid var(--correct);background:#10b9811f;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:12px 18px;display:flex}.warmup-prompt p{color:var(--text-muted);margin:2px 0 0;font-size:.88rem}.warmup-links{flex-wrap:wrap;gap:14px;display:flex}.warmup-links a{color:var(--correct);font-weight:600;text-decoration:none}.warmup-links a:hover{text-decoration:underline}.tutorials-page{flex-direction:column;gap:16px;display:flex}.tutorials-list{flex-direction:column;gap:8px;display:flex}.tutorial-row{background:var(--card-bg);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.tutorial-row-ready{border-left:3px solid var(--correct)}.tutorial-row-missing{border-left:3px solid var(--text-muted);opacity:.6}.tutorial-status{color:var(--text-muted);text-align:right;flex:1;margin-right:8px;font-size:.85rem}
