:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f1e7;--ink:#1b1b1b;--panel:#fff;--accent:#c56c35;--muted:#6b6b6b;--progression-preview-min-width:736px}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(circle at top,#fff7e9 0%,#efe3d2 55%,#e7d7c4 100%);min-width:1100px;margin:0;font-family:Alegreya Sans,Trebuchet MS,sans-serif}main{width:100%;min-width:1100px;margin:0 auto;padding:32px 24px 48px}.app-footer{color:#6b5a46;text-align:center;margin-top:28px;font-size:.92rem;line-height:1.4}.app-build-stamp{color:#7f725f;font-size:.82rem}header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;display:flex}.app-header{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:18px;display:flex}.app-header-row{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:14px;display:flex}.app-title-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;display:grid}.auth-anchor{justify-self:end;position:relative}h1{margin:0 0 8px;font-family:Fraunces,Times New Roman,serif;font-size:clamp(2rem,3vw,3.2rem)}.app-brand-title{justify-content:center;align-items:center;margin:0;display:flex}.app-title-spacer{min-width:1px}.app-brand-wordmark{width:min(460px,48vw);max-width:100%;height:auto;display:block}.subhead{color:var(--muted);margin:0 0 16px}.scale-description-card{background:#fffdf8;border:1px solid #ead8c2;border-left:5px solid #d4a860;border-radius:12px;margin:0 0 16px;padding:12px 14px}.scale-description-title{color:var(--ink);margin:0 0 4px;font-weight:800}.scale-description-copy{color:var(--muted);margin:0;line-height:1.45}.home-panel{gap:18px;display:grid}.home-feature-grid{grid-template-columns:repeat(2,minmax(280px,1fr));gap:16px;display:grid}.home-feature-card{background:#fffdf8;border:1px solid #ead8c2;border-radius:14px;padding:16px}.home-feature-kicker{color:#8a6a4e;letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:800}.home-feature-title{color:var(--ink);margin:0 0 10px;font-size:1.15rem}.home-feature-list{color:var(--muted);margin:0;padding-left:20px;line-height:1.45}.home-contact-note{color:var(--muted);margin:0}.app-error-notice{color:#6f2414;background:#fff3ed;border:1px solid #96362140;border-left:4px solid #963621;border-radius:12px;margin:0 0 16px;padding:12px 14px}.app-error-notice strong{margin-bottom:4px;display:block}.app-error-copy{color:inherit;margin:0}.progression-inline-warning{color:#8a4b17}.section-title{margin:0;font-family:Fraunces,Times New Roman,serif;font-size:1.6rem}.section-intro{margin-bottom:10px}.progression-intro-notes{color:var(--muted);margin:0;padding-left:18px}.section-title-row{justify-content:space-between;align-items:center;gap:14px;margin-bottom:4px;display:flex}.learning-mode-switch{color:#4c4339;white-space:nowrap;background:#fff8ee;border:1px solid #d7c7b3;border-radius:12px;align-items:center;gap:8px;margin:0;padding:8px 10px;font-size:.95rem;font-weight:800;display:inline-flex}.mode-switch-group{align-items:center;gap:6px;display:inline-flex}.mode-switch-option{white-space:nowrap;align-items:center;gap:4px;margin:0;display:inline-flex}.mode-switch-option input{width:18px;height:18px;margin:0}.top-nav{background:linear-gradient(#fffdf8 0%,#f1e5d5 100%);border-radius:14px;flex-wrap:wrap;gap:10px;padding:10px 12px;display:flex;box-shadow:0 8px 24px #1d170a14}.auth-panel{z-index:20;justify-content:flex-end;align-items:flex-start;padding:0;display:flex;position:absolute;top:calc(100% + 10px);right:0}.auth-trigger-button{appearance:none;color:var(--ink);font:inherit;cursor:pointer;background:#fff8ee;border:1px solid #d7c7b3;border-radius:999px;padding:10px 16px;font-weight:700;transition:background .12s,border-color .12s,transform .12s}.auth-trigger-button:hover{background:#fff1df;border-color:#cfa882}.auth-panel-card{background:linear-gradient(#fffdf8 0%,#f3e6d6 100%);border:1px solid #d7c7b3;border-radius:16px;min-width:290px;max-width:340px;padding:14px 14px 12px;box-shadow:0 10px 28px #1d170a24}.auth-panel-kicker{color:#8a6a4e;letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:800}.auth-panel-title{color:#3f3326;margin:0 0 10px;font-family:Fraunces,Times New Roman,serif;font-size:1.05rem;line-height:1.25}.auth-field-stack{gap:8px;margin-bottom:10px;display:grid}.auth-input{width:100%;font:inherit;color:var(--ink);background:#fffaf2;border:1px solid #d7c7b3;border-radius:10px;padding:10px 12px}.auth-input:focus{border-color:#c56c35;outline:none;box-shadow:0 0 0 3px #c56c3524}.auth-label{color:#4c4339;margin:0 0 10px;font-size:1rem;font-weight:700}.auth-action-button{justify-content:center;width:100%}.auth-panel-status{color:#6a5643;margin:10px 0 0;font-size:.95rem;line-height:1.35}.auth-panel-status-error{color:#9a2f2f}.auth-status{margin:-4px 0 0}.nav-item{appearance:none;color:var(--ink);font:inherit;cursor:pointer;background:#fff8ee;border:1px solid #d7c7b3;border-radius:999px;padding:10px 16px;font-weight:700;transition:background .12s,border-color .12s,transform .12s}.nav-item:hover{background:#fff1df;border-color:#cfa882}.nav-item-active{background:var(--accent);color:#fff8ef;border-color:#ad5827}.panel{background:var(--panel);border-radius:16px;padding:20px;box-shadow:0 12px 40px #1d170a1f}.controls{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px;display:grid}.progressions-layout{grid-template-columns:minmax(0,1.8fr) minmax(150px,.35fr);align-items:start;gap:18px;min-width:0;display:grid}.progressions-side-panel-spacer{min-height:1px}.progression-summary-card,.progression-row-card,.progressions-side-card{background:#fffaf2;border:1px solid #e1cfb8;border-radius:14px;padding:16px}.progression-row-card-play{padding-bottom:12px}.progression-row-card,.progression-row-card-play,.progression-row-preview-layout{overflow-x:visible}.progression-summary-label{color:var(--muted)}.progression-summary-text{margin:8px 0 0;font-family:Fraunces,Times New Roman,serif;font-size:1.2rem}.progression-summary-toggles{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.progression-save-status{color:#634a34;margin:8px 0 0;font-size:.92rem}.saved-item-navigator{gap:12px;display:grid}.progression-saved-navigator{border-top:1px solid #ead8c2;margin-top:14px;padding-top:14px}.saved-item-navigator-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.saved-item-navigator-toggle{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.saved-item-navigator-toggle-mark{color:#7a5533;background:#fff4e4;border:1px solid #d7c7b3;border-radius:999px;justify-content:center;align-items:center;width:20px;height:20px;font-weight:800;line-height:1;display:inline-flex}.saved-item-navigator-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.saved-item-navigator-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.saved-item-navigator-search{width:min(100%,18rem);min-width:11rem;height:34px}.saved-item-navigator-table-wrap{overflow-x:auto}.saved-item-navigator-row:focus-visible{outline-offset:-2px;outline:2px solid #cfb694}.progression-row-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.progression-row-header-left{align-items:center;gap:12px;min-width:0;display:inline-flex}.progression-row-play-header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.progression-chord-panel{gap:14px;margin-bottom:14px;display:grid}.progression-chord-panel.is-closed{gap:0}.progression-chord-panel-body{gap:12px;display:grid}.progression-panel-toggle{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:inline-flex}.progression-panel-chevron{justify-content:center;align-items:center;width:20px;transition:transform .18s;display:inline-flex}.progression-chord-panel.is-closed .progression-panel-chevron{transform:rotate(-90deg)}.progression-row-header-right{align-items:center;gap:10px;display:inline-flex}.progression-row-position-badge{color:#634a34;background:#f3e5d5;border-radius:999px;align-items:center;padding:5px 10px;font-size:.9rem;font-weight:700;display:inline-flex}.progression-row-scale-badge{color:#7a5d41;background:#f8efe1;border-radius:999px;align-items:center;padding:5px 10px;font-size:.92rem;font-weight:700;display:inline-flex}.progression-row-title{margin:0;font-family:Fraunces,Times New Roman,serif;font-size:1.16rem;font-weight:700}.progression-flow-switch-inline{flex-shrink:0}.progression-row-mode{color:#634a34;background:#f3e5d5;border-radius:999px;align-items:center;padding:5px 10px;font-size:.92rem;font-weight:700;display:inline-flex}.progressions-controls{margin-bottom:12px}.progressions-controls-row{grid-template-columns:minmax(120px,.85fr) minmax(92px,.55fr) minmax(150px,1fr) minmax(120px,.7fr);align-items:end;gap:12px;margin-bottom:12px;display:grid}.progressions-control-field{min-width:0}.progressions-control-field-compact .mode-switch-option{background:#fffaf2;border:1px solid #c9b295;border-radius:10px;justify-content:center;min-height:40px;padding:0 10px}.progression-row-results{gap:8px;display:grid}.progression-scale-selector-panel{border-top:1px solid #decbb3;gap:10px;margin-top:6px;padding-top:12px;display:grid}.progression-shape-selector{gap:6px;max-width:220px;display:grid}.progression-row-preview-layout{gap:16px;display:grid}.progressions-play-grid{grid-column:1/-1;grid-template-columns:repeat(2, minmax(var(--progression-preview-min-width), 1fr));min-width:calc((2 * var(--progression-preview-min-width)) + 18px);gap:16px 18px;display:grid}.progression-row-preview-controls-panel{grid-template-columns:1fr;gap:10px;width:100%;min-width:150px}.progression-row-adjustments-panel{grid-template-columns:1fr;align-self:start;gap:10px;width:100%;min-width:150px}.progression-row-adjustments-nav{width:100%}.progression-shape-navigator{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%;display:grid}.progression-shape-nav-label{color:#4c4339;text-align:center;justify-self:center;font-size:.92rem;font-weight:700}.progression-shape-nav-button{min-width:40px;padding-inline:10px}.progression-shape-navigator>.progression-shape-nav-button:first-child{justify-self:start}.progression-shape-navigator>.progression-shape-nav-button:last-child{justify-self:end}.progression-octave-row,.progression-octave-row.filter-row{grid-template-columns:auto 1fr;align-items:center;gap:10px;width:100%;display:grid}.progression-octave-row .filter-label{justify-self:start}.chords-controls-row{grid-template-columns:minmax(120px,.65fr) minmax(92px,.45fr) minmax(120px,.5fr) minmax(340px,1.4fr);margin-bottom:16px}.chords-symbol-field{display:grid}.chords-mode-switch{justify-self:start;min-width:0}.chords-topbar-gap-spacer{min-width:0}.chords-symbol-chip{background:#fffaf2;border:1px solid #d7c7b3;border-radius:10px;align-items:center;min-height:42px;padding:0 12px;font-family:Fraunces,Times New Roman,serif;font-size:1.05rem;font-weight:700;display:flex}.chord-family-rail{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.chord-family-card{text-align:left;color:var(--ink);cursor:pointer;background:#fffdf8;border:1px solid #decbb3;border-radius:12px;gap:6px;padding:12px 14px;display:grid}.chord-family-card.is-active{background:linear-gradient(#fff8ee 0%,#f1e5d5 100%);border-color:#b9783f}.chord-family-card-title{font-family:Fraunces,Times New Roman,serif;font-size:1rem;font-weight:700}.chord-family-card-formula{color:#4c4339;font-size:.95rem}.chord-family-card-transition{color:var(--muted);font-size:.88rem}.chords-panel-copy{margin:0}.chords-diagram-row{align-items:stretch}.chords-full-width-row{display:block}.chords-full-width-board{width:100%}.chords-full-width-board canvas{width:100%;height:auto}.chords-fretboard-topbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 210px;align-items:stretch;gap:16px;margin-bottom:14px;display:grid}.chords-fretboard-navigator{width:100%;min-width:0;padding:8px 10px}.chords-fretboard-navigator .progression-shape-navigator{grid-template-columns:auto 100px auto;justify-content:center;align-items:center;gap:6px;display:grid}.chords-fretboard-navigator .progression-shape-nav-button{min-width:34px;min-height:34px;padding:6px 8px}.chords-topbar-side-stack{justify-self:end;gap:12px;width:210px;min-width:210px;display:grid}.chords-topbar-side-stack .progression-summary-card{padding:10px 12px}.chords-selected-voicing-card{min-width:0}.chords-selected-voicing-copy{gap:2px;display:grid}.chords-spelling-alias-copy{align-content:start;min-height:100%}.chords-spelling-alias-card,.chords-selected-voicing-main-card{min-width:0;padding:12px 13px}.chords-exotic-tetrads-card{min-width:0}.chords-exotic-tetrads-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.chords-exotic-tetrad-button{text-align:left;min-height:64px;color:var(--ink);cursor:pointer;background:#fffdf8;border:1px solid #decbb3;border-radius:10px;gap:3px;padding:10px 13px;display:grid}.chords-exotic-tetrad-button.is-active{background:linear-gradient(#fff8ee 0%,#f1e5d5 100%);border-color:#b9783f}.chords-exotic-tetrad-title{font-family:Fraunces,Times New Roman,serif;font-size:.98rem;font-weight:700}.chords-exotic-tetrad-formula{color:#4c4339;font-size:.88rem}.chords-voicing-list{gap:10px;display:grid}.chords-voicing-row{border-bottom:1px solid #eadfd1;gap:2px;padding-bottom:8px;display:grid}.chords-voicing-row:last-child{border-bottom:none;padding-bottom:0}.chords-voicing-title{color:#3f3326;font-weight:800}.chords-summary-primary{color:#2f2419;font-family:Fraunces,Times New Roman,serif;font-size:1.02rem;font-weight:700}.chords-summary-line,.chords-voicing-meta,.chords-voicing-frets{color:var(--muted);font-size:.92rem}.chords-voicing-label{color:#4a3a2b;font-weight:800}.songs-workspace{grid-template-columns:1fr;align-items:start;gap:18px;width:100%;display:grid}.songs-column,.songs-playlists-panel,.songs-section-card,.songs-playlist-song{gap:12px;display:grid}.songs-column-header,.songs-sections-header,.songs-section-topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.songs-editor-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.songs-simple-list{gap:8px;display:grid}.songs-table-wrap{overflow-x:auto}.songs-table{border-collapse:collapse;width:100%;font-size:.95rem}.songs-table th,.songs-table td{text-align:left;border-bottom:1px solid #eadfd1;padding:10px 12px}.songs-table th{color:#5a4b3d;letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}.songs-table-row{cursor:pointer}.songs-table-row:hover,.songs-table-row.is-active{background:#f3e5d3}.songs-list-item{text-align:left;color:#36291b;cursor:pointer;background:#fffaf2;border:1px solid #e2d6c7;border-radius:14px;gap:4px;padding:10px 12px;display:grid}.songs-list-item.is-active{background:#f3e5d3;border-color:#987356}.songs-list-title{font-weight:700}.songs-list-meta{color:var(--muted);font-size:.9rem}.songs-form-grid,.songs-section-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.songs-field{gap:6px;display:grid}.songs-field-wide{grid-column:1/-1}.songs-field-grow{min-width:0}.songs-field-label{color:#4a3a2b;font-weight:700}.songs-complete-checkbox{align-items:center;gap:10px;min-height:40px;display:flex}.songs-complete-checkbox input[type=checkbox]{width:18px;height:18px}.songs-textarea{resize:vertical;min-height:84px}.songs-lyrics-textarea{min-height:132px}.songs-sections-list{gap:12px;display:grid}.songs-song-editor{gap:14px;display:grid}.songs-editor-toggle{cursor:pointer;color:inherit;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.songs-editor-toggle:focus-visible{outline-offset:3px;border-radius:8px;outline:2px solid #cfb694}.songs-editor-toggle-arrow{color:#86684f;justify-content:center;width:.9rem;display:inline-flex}.songs-editor-toggle .progression-results-title{margin:0}.songs-song-meta-row{grid-template-columns:minmax(180px,.8fr) minmax(180px,.8fr) minmax(260px,1.6fr);align-items:end;gap:12px;display:grid}.songs-song-meta-grid{grid-template-columns:minmax(150px,1fr) minmax(190px,1fr) minmax(150px,1fr) minmax(150px,1fr);grid-template-areas:"title artist notes notes""genre tempo notes notes";align-items:stretch;gap:12px;display:grid}.songs-meta-title{grid-area:title}.songs-meta-artist{grid-area:artist}.songs-meta-genre{grid-area:genre}.songs-tempo-runtime-cell{grid-area:tempo;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.songs-meta-notes{grid-area:notes}.songs-notes-field{resize:none;min-height:100%}.songs-detail-timestamps{color:#6b5a46;flex-wrap:wrap;justify-content:flex-start;gap:4px 12px;min-width:0;font-size:.82rem;font-weight:400;display:flex}.songs-detail-timestamp{align-items:baseline;gap:6px;display:inline-flex}.songs-section-card,.songs-playlist-song{background:#fffdf9;border:1px solid #eadfd1;border-radius:14px;padding:12px}.songs-inline-actions,.songs-editor-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.songs-inline-actions-compact{flex-wrap:nowrap;gap:6px}.songs-search-input{width:12rem;min-width:9rem;height:34px}.songs-sort-button{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;padding:0}.songs-sort-button:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #cfb694}.songs-empty-cell{color:var(--muted);font-style:italic}.songs-playlists-panel{margin-top:18px}.practice-planner-mode,.practice-daily-mode{grid-template-columns:1fr;align-items:start;gap:18px;display:grid}.practice-planner-mode .section-intro,.practice-planner-mode .app-error-notice,.practice-daily-mode .section-intro,.practice-daily-mode .app-error-notice{grid-column:1/-1}.practice-planner-mode .practice-plan-navigator,.practice-daily-mode .practice-plan-navigator,.practice-planner-mode .practice-template-panel,.practice-planner-mode .practice-plan-panel,.practice-daily-mode .practice-daily-plan-panel,.practice-daily-mode .practice-daily-session-panel,.practice-daily-mode .practice-session-card{grid-column:1}.practice-template-panel,.practice-plan-panel,.practice-daily-plan-panel,.practice-daily-session-panel,.practice-template-panel-body,.practice-plan-panel-body,.practice-daily-plan-panel-body,.practice-daily-session-panel-body{gap:14px;display:grid}.practice-planner-mode .practice-editor-card,.practice-planner-mode .practice-sections-card,.practice-planner-mode .practice-plan-add-exercises-card{grid-column:1;margin-top:0}.practice-daily-mode .practice-session-card{margin-top:0}.practice-editor-card,.practice-sections-card,.practice-plan-add-exercises-card,.practice-session-placeholder,.practice-session-card{margin-top:18px}.practice-details-grid{grid-template-columns:repeat(2,minmax(280px,1fr));align-items:start;gap:12px 18px;display:grid}.practice-details-grid .song-field-label{color:#4a3a2b;grid-template-columns:8rem minmax(0,1fr);align-items:center;gap:10px;font-weight:700;display:grid}.practice-details-grid .auth-input,.practice-details-grid .song-textarea{box-sizing:border-box;width:100%;font-weight:400}.practice-details-grid .practice-template-resource-input{background:#fff;border-color:#c79a64}.practice-plan-resources{gap:10px;display:grid}.practice-plan-resource-list{grid-template-columns:max-content minmax(0,1fr);gap:8px 12px;margin:0;display:grid}.practice-plan-resource-list dt{color:#4a3a2b;font-weight:800}.practice-plan-resource-list dd{overflow-wrap:anywhere;min-width:0;margin:0}.practice-resource-empty{color:var(--muted);font-style:italic}.practice-plan-notes-label{grid-column:1/-1;align-items:start}.practice-plan-notes-textarea{min-height:6.8rem}.practice-plan-exercise-search{color:#4a3a2b;align-items:center;gap:8px;font-weight:700;display:flex}.practice-section-block{background:#fffaf2;border:1px solid #dac5aa;border-radius:14px;gap:12px;padding:14px;display:grid}.practice-section-block+.practice-section-block{margin-top:14px}.practice-section-grid{grid-template-columns:44px minmax(180px,1fr) minmax(240px,2fr) auto;align-items:end;gap:12px;display:grid}.practice-section-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.practice-section-collapse-button{white-space:nowrap;align-self:end}.practice-section-readonly-header{gap:4px;display:grid}.practice-section-readonly-header .progression-results-title{margin:0}.practice-items-table th,.practice-items-table td{vertical-align:top}.practice-plan-section-list{gap:12px;display:grid}.practice-plan-section-card{background:#fffdf8;border:1px solid #dac5aa;border-radius:12px;gap:10px;padding:12px;display:grid}.practice-plan-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.practice-plan-section-title{color:var(--ink);margin:0;font-size:1rem}.practice-plan-section-resources{color:var(--muted);font-weight:600}.practice-plan-section-time{color:var(--muted);font-size:.9rem;font-weight:800}.practice-minutes-input{min-width:72px}.practice-exercise-notes-label{align-items:start;gap:12px;width:100%;display:grid}.practice-exercise-notes-textarea{box-sizing:border-box;width:100%;min-height:6.8rem}.practice-session-runner{gap:14px;display:grid}.practice-session-start-controls{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:10px;display:flex}.practice-session-heading{gap:2px;display:grid}.practice-session-heading .progression-results-title{margin:0}.practice-session-heading-label{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:800}.practice-session-date-label{color:#4a3a2b;gap:4px;font-size:.85rem;font-weight:800;display:grid}.practice-session-date-input{min-width:10rem}.practice-session-progress-strip,.practice-session-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.practice-session-progress-strip{grid-template-columns:repeat(2,minmax(240px,1fr));align-items:stretch;gap:12px;display:grid}.practice-session-timer-card{background:#fffaf2;border:1px solid #dac5aa;border-radius:16px;align-content:start;gap:4px;padding:14px 16px;display:grid}.practice-session-timer-label{color:#4a3a2b;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:900}.practice-session-timer-value{color:var(--ink);font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.15}.practice-session-overall-progress,.practice-session-current-progress{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.practice-session-exercise-count,.practice-session-attempt-count{color:#4a3a2b;text-align:right;white-space:nowrap;font-size:1.12rem;font-weight:900}.practice-session-timer-detail{color:var(--muted);overflow-wrap:anywhere;font-size:.95rem}.practice-session-item-card{background:#fffdf8;border:1px solid #dac5aa;border-radius:16px;gap:10px;padding:16px;display:grid}.practice-session-item-card-readonly{background:#fbfff8;border-color:#c9d8c2}.practice-session-exercise-topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.practice-session-exercise-heading{gap:4px;min-width:min(24rem,100%);display:grid}.practice-session-exercise-controls{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:8px;display:flex}.practice-session-control-group{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.practice-session-current-select-label{color:#4a3a2b;align-items:center;gap:.45rem;font-size:.8rem;font-weight:800;display:flex}.practice-session-current-select{min-width:12rem}.practice-session-kicker{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:800}.practice-session-title{color:var(--ink);margin:0;font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.15}.practice-session-title-state{color:var(--muted);font-size:.95rem;font-weight:800}.practice-session-exercise-timer{color:var(--muted);margin:0;font-size:1rem;font-weight:800}.practice-session-meta{color:var(--muted);margin:0}.practice-session-links{overflow-wrap:anywhere;background:#fffaf2;border:1px solid #ead8c0;border-radius:12px;padding:10px 12px}.practice-session-details-grid{grid-template-columns:repeat(3,minmax(180px,1fr));align-items:stretch;gap:12px;display:grid}.practice-session-detail-row{background:#fffaf2;border:1px solid #ead8c0;border-radius:12px;align-content:start;gap:6px;min-width:0;padding:10px 12px;display:grid}.practice-session-detail-label{color:#4a3a2b;letter-spacing:.04em;text-transform:uppercase;font-size:.8rem;font-weight:800}.practice-session-detail-value{color:var(--muted);overflow-wrap:anywhere}.practice-session-detail-value .practice-session-links{background:0 0;border:0;border-radius:0;padding:0}.practice-session-previous-result{color:var(--ink);background:#fbfff8;border:1px solid #d8e2ce;border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:8px 12px;padding:10px 12px;display:flex}.practice-session-previous-result-label,.practice-session-previous-result-date{color:var(--muted);font-size:.85rem;font-weight:800}.practice-session-inputs{grid-template-columns:1fr}.practice-progress-dashboard{gap:16px;display:grid}.practice-progress-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;display:flex}.practice-progress-heading{gap:3px;display:grid}.practice-progress-heading .progression-results-title{margin:0}.practice-progress-range-control{width:min(14rem,100%)}.practice-progress-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.practice-progress-metric{background:#f8fafc;border:1px solid #d6dbe4;border-radius:8px;gap:6px;padding:14px 16px;display:grid}.practice-progress-metric-label{color:#4a5568;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:900}.practice-progress-metric-value{color:#172033;font-size:1.45rem;line-height:1.15}.practice-progress-chart-panel{gap:12px;display:grid}.practice-progress-exercise-panel,.practice-progress-history-panel{border-top:1px solid #e4e9f0;padding-top:4px}.practice-progress-exercise-control{max-width:min(32rem,100%)}.practice-progress-range{color:var(--muted);font-size:.9rem;font-weight:800}.practice-progress-chart-wrap{gap:8px;min-width:0;display:grid}.practice-progress-chart{aspect-ratio:36/13;background:#fff;border:1px solid #d6dbe4;border-radius:8px;width:100%;min-height:220px;display:block}.practice-progress-chart-grid{stroke:#e4e9f0;stroke-width:1px}.practice-progress-chart-axis{stroke:#8792a2;stroke-width:1.25px}.practice-progress-minutes-bar{fill:#357a86}.practice-progress-minutes-bar-empty{fill:#dce4eb}.practice-progress-exercises-line{fill:none;stroke:#ad5b3d;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.practice-progress-exercises-dot{fill:#ad5b3d;stroke:#fff;stroke-width:2px}.practice-progress-exercises-dot-empty{fill:#fff;stroke:#ad5b3d}.practice-progress-exercise-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.practice-progress-exercise-dot{stroke:#fff;stroke-width:2px}.practice-progress-chart-label{fill:#4a5568;font-size:.72rem;font-weight:800}.practice-progress-chart-legend{color:var(--muted);flex-wrap:wrap;gap:10px 18px;font-size:.85rem;font-weight:800;display:flex}.practice-progress-chart-legend span{align-items:center;gap:6px;display:inline-flex}.practice-progress-chart-legend span:before{content:"";background:#357a86;border-radius:999px;width:16px;height:8px;display:inline-block}.practice-progress-chart-legend .practice-progress-legend-exercises:before{background:#ad5b3d;height:3px}.practice-progress-chart-legend .practice-progress-exercise-legend-item:before{background:var(--practice-progress-series-color,#ad5b3d);height:3px}.practice-progress-table-wrap{max-height:18rem}.practice-session-result-inputs{grid-template-columns:minmax(140px,.8fr) minmax(120px,.7fr) minmax(100px,.6fr) minmax(120px,.7fr) minmax(100px,.6fr);align-items:start;gap:12px 18px;margin-top:12px;display:grid}.practice-session-result-inputs.practice-session-results-grid{grid-template-columns:repeat(4,minmax(140px,1fr))}.practice-session-result-inputs.practice-session-key-scale-results{grid-template-columns:repeat(2,minmax(220px,1fr));width:100%}.practice-session-result-inputs.practice-session-exercise-bpm-results{grid-template-columns:repeat(10,minmax(5.5rem,1fr));width:100%}.practice-session-exercise-bpm-cell{grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:8px;display:grid}.practice-session-exercise-bpm-number{min-width:1.5rem;color:var(--muted);text-align:left;font-weight:700}.practice-session-exercise-bpm-input{min-width:0}.practice-session-previous-bpm-label{color:#765c3a;text-align:left;white-space:nowrap;grid-area:2/1/auto/-1;margin:0;font-size:.72rem;font-weight:700;line-height:1}.practice-session-previous-bpm-values{grid-area:2/1/auto/-1;grid-template-columns:repeat(10,minmax(5.5rem,1fr));gap:18px;display:grid}.practice-session-previous-bpm-row{color:#765c3a;text-align:right;white-space:nowrap;min-height:.72rem;padding-right:.6rem;font-size:.72rem;font-weight:700;line-height:1;display:block}.practice-session-key-scale-results .song-field-label{grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px;display:grid}.practice-session-secondary-result-fields{grid-template-columns:minmax(0,1fr) minmax(5.5rem,.45fr);gap:8px;display:grid}.practice-session-inputs .song-field-label,.practice-session-result-inputs .song-field-label,.practice-session-notes-label{align-items:start}.practice-session-notes-label{gap:8px;display:grid}.practice-session-notes-textarea{min-height:6.8rem}.practice-session-status{color:var(--muted);background:#f3eadf;border-radius:999px;padding:6px 10px;font-size:.85rem;font-weight:700}.practice-session-status-completed{color:#2d6b2f;background:#e5f4df}.practice-session-status-skipped{color:#9a4a2f;background:#f7e6df}.practice-session-status-active{color:#2d6b2f;background:#e5f4df}.practice-session-status-paused{color:#8a5a00;background:#fff0c7}.songs-playlists-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.songs-playlist-editor,.songs-playlist-membership{gap:12px;display:grid}.songs-membership-note{color:var(--muted);font-size:.92rem}.songs-sections-table th,.songs-sections-table td,.songs-playlist-songs-table th,.songs-playlist-songs-table td{vertical-align:top}.songs-playlist-songs-table th:first-child,.songs-playlist-songs-table td:first-child{width:44px;min-width:44px}.songs-row-number-cell{width:44px;min-width:44px;padding-right:8px}.songs-row-number-button{cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.songs-row-number-stack{width:28px;height:28px;position:relative}.songs-row-number{width:28px;height:28px;color:var(--muted);justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:absolute;inset:0}.songs-row-number-button:focus-visible{outline:none}.songs-section-label-heading,.songs-section-label-cell{width:8.5rem;min-width:8.5rem}.songs-section-code-heading,.songs-section-code-cell{width:7.5rem;min-width:7.5rem}.songs-section-lyrics-cell,.songs-section-notes-cell{width:50%}.songs-table-input{width:100%;min-width:0}.songs-table-label-input,.songs-table-section-input{max-width:100%}.songs-section-code-stack{gap:3px;display:grid}.songs-bar-count-row{color:#765c3a;font-size:.72rem;line-height:1;display:block}.songs-runtime-input{color:#4c3320;font-weight:650}.songs-row-number-actions{opacity:0;pointer-events:none;justify-content:flex-start;align-items:center;gap:4px;transition:opacity .14s;display:inline-flex;position:absolute;inset:0}.songs-row-number-cell.is-open{width:44px;min-width:44px}.songs-row-number-cell.is-open .songs-row-number-stack{width:28px}.songs-row-number-cell.is-open .songs-row-number-actions{opacity:1;pointer-events:auto;z-index:6;background:#fffdf9;border:1px solid #d7c2a6;border-radius:9px;width:auto;padding:1px 4px;left:calc(100% + 6px);right:auto;box-shadow:0 4px 10px #452f1614}.songs-row-number-actions .secondary-button{border:1px solid #d8c3a8;border-radius:7px;width:30px;min-width:0;height:26px;min-height:0;padding:0;font-size:.92rem;line-height:1}.songs-table-textarea{resize:none;width:100%;min-width:0;min-height:44px;line-height:1.45;overflow:hidden}.songs-table-lyrics{min-height:60px}.songs-modal-overlay{z-index:40;background:#291f135c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.songs-modal-card{width:min(560px,100%)}@media (width<=980px){.songs-workspace,.songs-playlists-grid,.practice-details-grid,.practice-session-progress-strip,.practice-session-details-grid,.practice-session-inputs,.practice-session-result-inputs,.songs-form-grid,.songs-section-grid,.songs-song-meta-row{grid-template-columns:1fr}.practice-session-result-inputs.practice-session-exercise-bpm-results{grid-template-columns:repeat(10,minmax(5rem,1fr))}.practice-progress-summary-grid{grid-template-columns:1fr}.practice-progress-toolbar{align-items:stretch}.practice-progress-range-control{width:100%}.songs-song-meta-grid{grid-template-columns:1fr;grid-template-areas:"title""artist""genre""tempo""notes"}}.progression-chord-line,.progression-selected-scale-header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.progression-chord-line-copy{flex-wrap:wrap;align-items:baseline;gap:10px;display:inline-flex}.progression-selected-summary-grid{grid-template-columns:minmax(200px,max-content) minmax(260px,max-content) auto;align-items:end;gap:4px 16px;display:grid;overflow-x:auto}.progression-selected-summary-grid>*{min-width:0}.progression-selected-summary-label-chord{grid-area:1/1}.progression-selected-summary-label-scale{grid-area:1/2}.progression-selected-summary-value-chord{grid-area:2/1}.progression-selected-summary-value-scale{grid-area:2/2}.progression-selected-summary-button{grid-area:1/3/span 2}.progression-selected-summary-actions{flex-wrap:wrap;justify-content:flex-end;align-items:stretch;gap:8px;display:flex}.progression-selected-scale-value{gap:2px;min-width:0;display:grid}.progression-selected-scale-card{background:#fffdf8;border:1px solid #e1cfb8;border-radius:12px;gap:8px;padding:12px 14px;display:grid}.progression-change-scale-button{white-space:nowrap;align-items:center;display:inline-flex}.progression-results-title{margin:0;font-weight:700}.progression-chord-spelling{margin:0;font-family:Fraunces,Times New Roman,serif;font-size:1.05rem}.progression-selected-scale-inline{color:#634a34;margin:0;font-weight:700}.progression-selected-scale-line{margin-top:-2px}.progression-selected-summary-grid .progression-results-title{white-space:nowrap;line-height:1.25}.progression-selected-summary-grid .progression-chord-spelling{white-space:nowrap;scrollbar-width:thin;overflow-x:auto}.progression-selected-summary-grid .progression-chord-spelling,.progression-selected-summary-grid .progression-selected-scale-inline,.progression-selected-summary-grid .progression-selected-scale-spelling{min-width:0}.progression-results-list{color:var(--muted);margin:0;padding-left:18px}.progression-candidate-table{gap:10px;display:grid}.progression-candidate-table-header,.progression-candidate-row{grid-template-columns:minmax(180px,1.15fr) minmax(220px,1.4fr) minmax(150px,1fr) minmax(170px,1.1fr);align-items:start;gap:12px;display:grid}.progression-candidate-table-header{color:#634a34;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e1cfb8;padding:0 0 6px;font-size:.84rem;font-weight:800}.progression-candidate-row{background:#fffdf8;border:1px solid #ead8c2;border-left-width:5px;border-radius:12px;padding:10px 12px}.progression-candidate-row[data-tonal-center-role=primary]{background:#f7fcff;border-left-color:#7ebfea}.progression-candidate-row[data-tonal-center-role=relative_minor]{background:#fff8f8;border-left-color:#ee8e8e}.progression-candidate-row[data-tonal-center-role=parent_major]{background:#f7fcff;border-left-color:#7ebfea}.progression-candidate-button{appearance:none;text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer}.progression-candidate-label{color:var(--ink);font-weight:700}.progression-candidate-parent{gap:4px;display:grid}.progression-candidate-match{align-items:flex-start;gap:8px;display:inline-flex}.progression-candidate-spelling{color:#4c4339;font-family:Fraunces,Times New Roman,serif;font-size:.98rem}.progression-candidate-parent-spelling{color:#4c4339;font-family:Fraunces,Times New Roman,serif;font-size:.92rem}.progression-candidate-context{color:var(--muted);font-size:.95rem}.progression-candidate-tooltip-wrap{outline:none;align-items:center;display:inline-flex;position:relative}.progression-candidate-tooltip-trigger{color:#7a5533;cursor:help;background:#fff4e4;border:1px solid #d7c7b3;border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.78rem;font-weight:800;line-height:1;display:inline-flex}.progression-candidate-tooltip{z-index:10;color:#fff8ef;white-space:pre-line;opacity:0;pointer-events:none;background:#3a2c20;border-radius:10px;width:220px;padding:9px 10px;font-size:.88rem;line-height:1.35;transition:opacity .12s,transform .12s;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-4px);box-shadow:0 10px 24px #1d170a2e}.progression-candidate-tooltip-wrap:hover .progression-candidate-tooltip,.progression-candidate-tooltip-wrap:focus-within .progression-candidate-tooltip{opacity:1;pointer-events:auto;transform:translateY(0)}.progression-inline-note{margin-bottom:0}.progression-inline-preview-card{margin-top:6px}.progression-preview-window{min-height:260px;padding-top:16px;padding-bottom:16px}.canvas-wrap.progression-row-preview-window{min-width:var(--progression-preview-min-width);box-sizing:border-box;width:100%;margin-top:2px;padding-top:10px;padding-bottom:4px;overflow-x:visible}.progression-row-preview-layout>.canvas-wrap{min-width:var(--progression-preview-min-width);overflow-x:visible}.progression-preview-content{width:100%;min-width:var(--progression-preview-min-width);color:var(--ink);gap:6px;display:grid}.progression-preview-board-shell{width:100%;min-width:var(--progression-preview-min-width);box-sizing:border-box;background:0 0;border-radius:0;flex:auto;align-items:center;padding:0;display:flex;overflow-x:visible}.progression-preview-title{margin:0;font-family:Fraunces,Times New Roman,serif;font-size:1.15rem;font-weight:700}.progression-actions{justify-content:flex-start;display:flex}label{margin-bottom:6px;font-weight:600;display:block}select{background:#fffaf2;border:1px solid #d7c7b3;border-radius:10px;width:100%;padding:10px 12px;font-size:1rem}input[type=text]{width:100%;font:inherit;background:#fffaf2;border:1px solid #d7c7b3;border-radius:10px;padding:10px 12px;font-size:1rem}button{font:inherit}.learning-drawer{background:#fffaf2;border:1px solid #e1cfb8;border-radius:12px;margin-bottom:18px;overflow:hidden}.learning-panel{gap:14px;padding:14px;display:grid}.learning-summary{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:none;margin:0;overflow:hidden}.learning-controls,.learning-guess-grid{align-items:end;gap:12px;display:grid}.learning-controls{grid-template-columns:minmax(360px,1fr) auto auto}.learning-controls>.secondary-button{align-self:center}.learning-guess-grid{grid-template-columns:auto auto minmax(80px,1fr);justify-content:start}.learning-family-picker{grid-template-columns:auto 1fr;align-items:center;gap:10px;min-width:0;display:grid}.learning-family-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.control-label-inline{white-space:nowrap;margin:0}.finder-results-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.finder-result-selector{align-items:center;gap:6px;display:inline-flex}.finder-result-row{text-align:left;width:100%;color:inherit;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:0;padding:7px 8px;display:flex}.finder-result-row:hover{background:#fff9f0;border-color:#e4d2be}.finder-result-row:focus-visible{outline-offset:2px;outline:2px solid #b86f3f}.finder-summary{margin-bottom:-6px}.finder-summary-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.finder-controls{grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:6px;display:grid}.finder-controls .secondary-button{flex:none;justify-self:end}.finder-controls .secondary-button:last-of-type,.finder-controls .secondary-button:first-of-type{justify-self:end}.finder-interval-picker{justify-self:center;min-width:0}.finder-interval-grid{gap:4px;margin-left:0}.finder-controls-spacer{min-width:0}.finder-comprehensive-choice{margin:0}.learning-family-choice{min-height:34px;color:var(--ink);cursor:pointer;white-space:nowrap;background:#fffdf8;border:1px solid #d7c7b3;border-radius:10px;align-items:center;gap:6px;margin:0;padding:6px 9px;font-size:.85rem;font-weight:800;display:inline-flex}.learning-family-choice input{width:15px;height:15px;accent-color:var(--accent);margin:0}.signature-picker-row{grid-template-columns:auto auto;align-items:center;gap:10px;display:grid}.control-label,.mini-label{color:#4c4339;margin-bottom:6px;font-size:.85rem;font-weight:800;display:block}.control-label{margin-bottom:8px;font-size:1rem}.mini-label{margin:0;font-size:.78rem}.signature-count-field,.signature-type-field,.learning-position-inline{grid-template-columns:auto auto;align-items:center;gap:8px;display:inline-grid}.signature-count-field label{color:#4c4339;margin:0;font-size:.78rem;font-weight:800}.signature-count-field select{min-width:76px;padding:8px 10px}.signature-type-buttons{background:#f6ebdd;border:1px solid #d7c7b3;border-radius:10px;grid-template-columns:repeat(2,minmax(58px,1fr));gap:0;padding:3px;display:inline-grid}.signature-type-button{appearance:none;color:var(--ink);cursor:pointer;background:#f1e1cf;border:0;border-radius:7px;min-height:32px;padding:5px 8px;font-size:.85rem;font-weight:800}.signature-type-button:disabled{cursor:default;opacity:.55}.signature-type-selected:not(:disabled){background:var(--accent);color:#fff8ef}.learning-position-inline{align-self:end}.learning-position-value{background:#fffdf8;border:1px solid #d7c7b3;border-radius:10px;justify-content:center;align-items:center;min-width:42px;min-height:42px;padding:8px 12px;font-weight:900;display:inline-flex}.learning-check-button{place-self:end;min-height:36px;padding:7px 12px}.primary-button,.secondary-button{appearance:none;cursor:pointer;white-space:nowrap;border:1px solid #ad5827;border-radius:10px;min-height:42px;padding:10px 14px;font-weight:800}.primary-button{background:var(--accent);color:#fff8ef}.secondary-button{color:var(--ink);background:#f3e5d5;border-color:#d7c7b3}.secondary-button:hover{background:#ead6bf;border-color:#c8aa84}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.55}.primary-button:disabled{color:var(--ink);background:#f3e5d5;border-color:#d7c7b3}.learning-challenge{gap:12px;display:grid}.learning-target{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.learning-target-scale{font-family:Fraunces,Times New Roman,serif;font-size:1.25rem;font-weight:600}.learning-target-position{color:var(--muted);font-weight:800}.learning-result{background:#fff4e5;border-radius:10px;gap:6px;padding:10px;display:grid}.learning-result-status{font-weight:900}.learning-note-picker label{margin-bottom:6px}.learning-note-grid{grid-template-columns:repeat(12,minmax(54px,1fr));gap:8px;display:grid}.note-choice-group{background:#fffdf8;border:1px solid #e1cfb8;border-radius:10px;gap:4px;padding:4px;display:grid}.note-choice{appearance:none;color:var(--ink);cursor:pointer;background:#fff8ee;border:1px solid #d7c7b3;border-radius:8px;min-height:34px;padding:6px 4px;font-size:.9rem;font-weight:900}.note-choice-selected{background:var(--accent);color:#fff8ef;border-color:#ad5827}.learning-answer{flex-wrap:wrap;gap:10px 18px;font-weight:700;display:flex}.canvas-wrap{background:linear-gradient(#fffdf8 0%,#f1e5d5 100%);border-radius:12px;flex:576px;align-items:center;min-width:576px;padding:22px 10px 10px;display:flex;overflow-x:auto}.fretboard-panel-shell{flex:576px;gap:6px;min-width:576px;display:grid}.fretboard-panel-toolbar{justify-content:flex-end;align-items:center;min-height:28px;display:flex}canvas{display:block}.diagram-row{align-items:stretch;gap:16px;display:flex}.side-panel-stack{flex:0 0 150px;gap:12px;min-width:150px;display:grid}.filter-panel{background:linear-gradient(#fffdf8 0%,#f1e5d5 100%);border-radius:12px;grid-template-columns:auto 1fr;gap:12px 10px;min-width:120px;padding:12px 14px;display:grid}.filter-row{display:contents}.filter-panel input[type=checkbox]{appearance:none;background:#fffdf8;border:2px solid #6f5f4c;border-radius:4px;place-content:center;align-self:center;width:18px;height:18px;margin:0;display:grid}.filter-panel input[type=checkbox]:before{content:"";background:#4f6f52;width:8px;height:8px;transform:scale(0)}.filter-panel input[type=checkbox]:checked:before{transform:scale(1)}.filter-panel input[type=checkbox]:disabled{background:#e3ddd5;border-color:#b7aa9b}.filter-panel input[type=checkbox]:disabled:before{content:"x";color:#8e8172;background:0 0;width:auto;height:auto;font-size:15px;font-weight:800;line-height:1;transform:none}.filter-label{white-space:nowrap;align-self:center;font-weight:700}.filter-label-disabled{color:#928575;opacity:.65}.filter-divider{background:#d7c7b3;grid-column:1/-1;height:1px;margin:2px 0}.playback-panel{background:linear-gradient(#fffdf8 0%,#f1e5d5 100%);border-radius:12px;gap:10px;padding:12px 14px;display:grid}.playback-command-row{align-items:center;gap:14px;display:flex}.playback-button{appearance:none;background:var(--accent);color:#fff8ef;cursor:pointer;border:1px solid #9f6f44;border-radius:8px;min-height:36px;padding:6px 10px;font-weight:900}.playback-speed{color:var(--ink);gap:6px;font-size:.9rem;font-weight:800;display:grid}.playback-speed input[type=range]{width:100%;accent-color:var(--accent)}.playback-click{color:var(--ink);align-items:center;gap:7px;margin:0;font-size:.78rem;font-weight:800;display:inline-flex}.playback-click input{width:13px;height:13px;margin:0}.metronome-icon{clip-path:polygon(50% 0,100% 100%,0 100%);border:2px solid #5f4a32;border-top-width:1px;border-radius:3px 3px 5px 5px;width:17px;height:18px;position:relative}.metronome-icon:before{content:"";transform-origin:bottom;background:#5f4a32;width:2px;height:11px;position:absolute;top:3px;left:7px;transform:rotate(-15deg)}.metronome-icon:after{content:"";background:#5f4a32;width:7px;height:2px;position:absolute;bottom:2px;left:5px}.note-list{flex-wrap:wrap;gap:8px;display:flex}.note-pill{background:#fff0de;border:1px solid #e5c8aa;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:inline-flex}.note-name{font-weight:800}.note-interval{color:#6b5948;font-size:.85rem;font-weight:700}.info-bar{background:linear-gradient(#fffdf8 0%,#f1e5d5 100%);border-radius:12px;margin-top:18px;padding:10px 12px;overflow-x:auto}.info-table{border-collapse:separate;border-spacing:0;width:100%;min-width:760px}.info-label{color:#4c4339;letter-spacing:.04em;text-transform:uppercase;text-align:left;white-space:nowrap;padding:8px 12px 10px;font-size:.9rem;font-weight:800}.info-value{vertical-align:top;padding:12px;font-size:1rem;font-weight:700}.validated-cell{text-align:center;vertical-align:middle}.validated-label{text-align:center}.status-valid{color:#2d6a2e}.status-invalid{color:#8b2e1b}.status-generated{color:#7d5a19}.note-list{white-space:nowrap;flex-wrap:nowrap;gap:8px;display:flex;overflow-x:auto}.note-list::-webkit-scrollbar{height:8px}.info-bar::-webkit-scrollbar{height:8px}.note-list::-webkit-scrollbar-thumb{background:#d9c4aa;border-radius:999px}.info-bar::-webkit-scrollbar-thumb{background:#d9c4aa;border-radius:999px}@media (width<=700px){.learning-controls,.learning-guess-grid{grid-template-columns:1fr}.learning-note-grid{grid-template-columns:repeat(4,minmax(54px,1fr))}.signature-picker-row{grid-template-columns:1fr}.primary-button,.secondary-button{width:100%}.practice-details-grid .song-field-label{grid-template-columns:1fr;gap:6px}.practice-progress-chart{min-height:200px}.progression-selected-summary-grid{grid-template-columns:1fr;overflow-x:visible}.progression-selected-summary-label-chord,.progression-selected-summary-label-scale,.progression-selected-summary-value-chord,.progression-selected-summary-value-scale,.progression-selected-summary-button{grid-area:auto}.progression-change-scale-button{align-self:start;margin-left:0}main{padding:24px 16px 40px}.progressions-layout,.progressions-play-grid{grid-template-columns:1fr}.diagram-row{flex-direction:column}.filter-panel{width:100%}.chords-fretboard-topbar{grid-template-columns:1fr}}@media print{body.songs-print-mode *{visibility:hidden}body.songs-print-mode .songs-song-editor,body.songs-print-mode .songs-song-editor *{visibility:visible}body.songs-print-mode .songs-song-editor{width:100%;box-shadow:none;color:#111;background:#fff;border:0;padding:0;font-size:15pt;line-height:1.3;position:absolute;inset:0 auto auto 0}body.songs-print-mode .songs-song-editor .songs-inline-actions,body.songs-print-mode .songs-song-editor .songs-row-number-actions,body.songs-print-mode .songs-song-editor .songs-editor-toggle-arrow{display:none!important}body.songs-print-mode .songs-song-editor .songs-editor-toggle{cursor:default;gap:0;padding:0}body.songs-print-mode .songs-song-editor .songs-column-header{margin:0 0 4pt;padding:0;display:block}body.songs-print-mode .songs-song-editor .progression-results-title{margin:0;font-size:22pt;line-height:1.05}body.songs-print-mode .songs-song-editor .songs-detail-timestamps{display:none}body.songs-print-mode .songs-song-editor .songs-song-meta-grid{grid-template-columns:1fr 1fr minmax(220pt,1.4fr);grid-template-areas:"title artist notes""genre tempo notes";align-items:start;gap:2pt 9pt;margin:0 0 5pt;display:grid}body.songs-print-mode .songs-song-editor .songs-field{flex-direction:row;align-items:baseline;gap:3pt;min-width:0;display:flex}body.songs-print-mode .songs-song-editor .songs-field-label{flex:none;font-size:9.5pt;line-height:1}body.songs-print-mode .songs-song-editor .songs-complete-checkbox{display:none}body.songs-print-mode .songs-song-editor .songs-tempo-runtime-cell{grid-template-columns:1fr 1fr;gap:8pt;display:grid}body.songs-print-mode .songs-song-editor .songs-meta-notes{align-items:flex-start;margin-top:1pt}body.songs-print-mode .songs-song-editor .songs-meta-notes-empty{display:none}body.songs-print-mode .songs-song-editor .songs-song-meta-grid:has(.songs-meta-notes-empty){grid-template-columns:1.2fr 1fr .8fr;grid-template-areas:"title artist genre""tempo tempo tempo"}body.songs-print-mode .songs-song-editor .songs-table-wrap{overflow:visible}body.songs-print-mode .songs-song-editor .auth-input{box-shadow:none;color:#111;font-size:inherit;background:0 0;border-color:#0000;padding:0;line-height:1.28}body.songs-print-mode .songs-song-editor .songs-notes-field,body.songs-print-mode .songs-song-editor .songs-table-textarea{resize:none;height:auto;min-height:0;overflow:visible}body.songs-print-mode .songs-song-editor .songs-table{border-collapse:collapse;font-size:14.5pt;line-height:1.28}body.songs-print-mode .songs-song-editor .songs-table th,body.songs-print-mode .songs-song-editor .songs-table td{vertical-align:top;padding:2.5pt 4pt}body.songs-print-mode .songs-song-editor .songs-table th{padding-top:1.5pt;padding-bottom:1.5pt;font-size:10pt;line-height:1}body.songs-print-mode .songs-song-editor .songs-section-code-stack{gap:1pt}body.songs-print-mode .songs-song-editor .songs-bar-count-row{font-size:9.5pt;line-height:1}body.songs-print-mode .songs-song-editor .songs-row-number-button{color:#111;background:0 0;border:0;min-height:0;padding:0;font-size:12pt;font-weight:700;line-height:1}body.songs-print-mode .songs-song-editor .songs-section-label-cell .auth-input,body.songs-print-mode .songs-song-editor .songs-section-lyrics-cell .auth-input{font-weight:700}body.songs-print-mode .songs-song-editor .songs-membership-note{margin-top:6pt;font-size:11pt;line-height:1.2}}
