@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f7f8f4;--paper:#fff;--ink:#243f39;--muted:#657570;--green:#2c6258;--mint:#e6eee5;--lime:#dce9be;--lavender:#eae5f5;--peach:#f8e4d3;--line:#e2e7e0;--radius:20px;--shadow:0 3px 12px #263f3503}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.5}button,input,select{font:inherit}button,a,select,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button,select,input{border:1px solid var(--line);border-radius:10px;background:#fff}button{transition:background .16s,transform .16s}button:hover{background:#edf2e8}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a17cc9;outline-offset:3px}button svg{pointer-events:none}button:disabled:active{transform:none}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3,.brand{font-family:'Manrope',sans-serif}h2{font-size:20px;letter-spacing:-.7px}h3{font-size:17px}select{padding:10px 32px 10px 12px;color:var(--ink)}input[type=number]{padding:9px;width:78px}input[type=range]{accent-color:var(--green);cursor:pointer}input[type=checkbox]{accent-color:var(--green);width:17px;height:17px}.sidebar{width:238px;background:#eef2e9;border-right:1px solid #e2e7dc;position:fixed;inset:0 auto 0 0;padding:38px 23px 24px;display:flex;flex-direction:column}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;font-size:29px;font-weight:800;line-height:1.03;letter-spacing:-1.6px;padding:0 10px}.brand-dot{color:#7c9870}.brand-mark{background:var(--green);color:#e6efce;width:44px;height:51px;border-radius:15px;display:grid;place-items:center;font-family:serif;font-size:41px;transform:rotate(-6deg)}.nav-label{font-size:10px;font-weight:700;letter-spacing:1.6px;margin:53px 10px 16px}.nav-button{width:100%;border:0;background:none;text-align:left;padding:14px 12px;margin-bottom:7px;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:500}.nav-button>span{font-size:22px;width:23px;text-align:center}.nav-button.active{background:#dbe6d5;color:#294c3d;font-weight:700}.sidebar-note{margin:auto 10px 28px;padding-top:34px}.sidebar-note p{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.7}.sidebar-note strong{font-weight:500;color:var(--ink);font-size:19px}.small-symbol{font-size:26px;color:#708b53}.tiny-strings{display:flex;gap:8px;transform:rotate(-14deg);margin:28px 12px 16px;height:48px;align-items:center}.tiny-strings i{height:100%;width:2px;background:#cbd7c1}.tiny-strings i:nth-child(even){height:34px}.tuning-status{border-top:1px solid #d9e1d3;padding-top:22px;display:flex;gap:10px;font-size:12px;color:var(--muted)}.tuning-status strong{font-weight:500;letter-spacing:2px;line-height:2;color:var(--ink)}.status-dot{width:7px;height:7px;border-radius:50%;background:#63825b;margin-top:7px}main{margin-left:238px;padding:0 42px;max-width:1880px}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar>span{font-size:11px;letter-spacing:2px;font-weight:600;color:var(--muted)}.notation-control{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.segmented{display:flex;padding:4px;background:#e9eee6;border-radius:10px;gap:2px}.segmented button{border:0;background:transparent;padding:6px 12px;font-size:12px}.segmented button.selected{background:#fff;box-shadow:0 1px 4px #273e3612;color:var(--ink)}.page-heading{display:flex;align-items:center;justify-content:space-between;margin:35px 0 27px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:#6d8175;margin-bottom:9px}h1{font-size:36px;line-height:1.25;letter-spacing:-1.7px;font-weight:700}h1 span{color:#8da671}.page-heading p:last-child{color:var(--muted);font-size:14px;margin-top:11px}.heading-badge{background:#edf0e4;border:1px solid #dbe4ce;padding:7px 13px;border-radius:30px;font-size:12px;white-space:nowrap}.heading-badge span{margin-left:13px}.controls-panel{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:23px;min-height:49px}.field{display:flex;flex-direction:column;gap:5px}.field>span,.field>label{font-size:12px;color:var(--muted);font-weight:500}.controls-panel .field{flex-direction:row;align-items:center;gap:10px}.controls-panel .field>span{font-size:14px}.check-label{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--muted)}.control-end{margin-left:auto}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 244px;gap:20px}.fretboard-panel{min-width:0;overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:24px 25px 15px;gap:12px}.panel-heading .eyebrow{font-size:9px;letter-spacing:1.6px}.board-actions select{font-size:12px;background:#f7f8f5;border:0;padding:8px 23px 8px 10px}.board-scroll{overflow-x:auto;padding:16px 20px 8px}.fretboard{min-width:570px;position:relative;display:grid;grid-template-columns:42px repeat(var(--frets,12),minmax(36px,1fr));grid-template-rows:25px repeat(6,41px) 22px;isolation:isolate}.fret-label{font-size:11px;text-align:center;color:#7a8174}.fret-cell{border:none;border-right:1px solid #cfceb9;border-radius:0;background:#f2f0e2;position:relative;padding:0;display:flex;align-items:center;justify-content:center;isolation:isolate;min-width:0}.fret-cell:before{content:'';position:absolute;left:0;right:0;height:var(--string-width,1px);background:#a5a58f;z-index:-1}.fret-cell:hover{background:#e8e8d5}.fret-cell.open{background:#fff;border-right:4px solid #b3b29a}.fret-cell .note-dot{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#dde6d5;color:#3d5643;font-size:10px;font-weight:600;border:1px solid #cedbc3;transition:transform .15s}.fret-cell .note-dot.root{background:var(--green);color:#fff;border-color:var(--green)}.fret-cell .note-dot.hidden-note{background:transparent;color:transparent;border-color:transparent}.fret-cell:hover .note-dot.hidden-note{background:#fff9;color:#476052}.fret-cell .note-dot.faded{opacity:.17}.fret-cell.played .note-dot{box-shadow:0 0 0 5px #a6be754d;transform:scale(1.12)}.fret-cell.target .note-dot{background:var(--lavender);border:2px solid #9b88ba;color:#55426f}.fret-marker{display:flex;align-items:center;justify-content:center;gap:5px}.fret-marker i{width:5px;height:5px;background:#bec4b6;border-radius:50%}.board-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eef0e9;padding:15px 24px;font-size:10px;color:#798278;gap:10px}.legend{display:flex;gap:13px;flex-wrap:wrap}.legend>span{display:flex;align-items:center;gap:5px}.legend i{height:8px;width:8px;border-radius:50%}.key-root{background:var(--green)}.key-note{background:#d7e3ce}.chord-legend{display:none}.detail-panel{padding:24px;background:#edf1e8;display:flex;flex-direction:column;align-items:flex-start}.detail-tag{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#647761}.big-note{font-family:'Manrope',sans-serif;font-size:64px;line-height:1.2;font-weight:600;letter-spacing:-3px;margin:12px 0 3px}.detail-subtitle{font-size:14px;color:var(--muted)}.note-chips{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.chip{font-size:12px;border-radius:8px;padding:5px 9px;background:#fff9;border:1px solid #dbe4d4}.detail-description{font-size:13px;line-height:1.7;color:#5c705f;margin-top:15px}.btn{padding:10px 16px;font-weight:500;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn.primary:hover{background:#214d45}.btn.soft{background:#eaf0e3;border-color:#d7e2ca}.btn.ghost{background:transparent}.detail-panel .btn{margin-top:auto;width:100%}.detail-panel .btn+.btn{margin-top:8px}.section-header{display:flex;align-items:center;justify-content:space-between;margin:30px 0 17px;gap:12px}.section-header>div{display:flex;align-items:baseline;gap:14px}.section-header p{font-size:12px;color:var(--muted)}.section-header h2{font-size:19px}.text-btn{border:0;background:transparent;font-size:12px;font-weight:600;padding:6px}.notes-strip{display:grid;grid-template-columns:repeat(12,1fr);gap:8px}.note-tile{border:1px solid var(--line);border-radius:13px;background:#fff;text-align:center;padding:14px 0 11px;font-size:18px;font-weight:500}.note-tile small{display:block;margin-top:5px;font-size:11px;font-weight:400;color:var(--muted)}.note-tile.active{background:var(--green);color:#fff;border-color:var(--green)}.note-tile.active small{color:#d0e1d8}.note-tile.accidental{background:#efedf3}.note-tile.accidental.active{background:var(--green)}.learning-cards{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:23px}.learning-card{padding:20px 22px;border-radius:16px;background:var(--lavender);display:flex;gap:16px;align-items:flex-start}.learning-card.peach{background:var(--peach)}.learning-icon{width:32px;height:32px;flex-shrink:0;border:1px solid #b9afc6;border-radius:10px;display:grid;place-items:center}.learning-card h3{font-size:14px;margin-bottom:6px}.learning-card p{font-size:12px;line-height:1.7;color:#645f70}.learning-card.peach p{color:#736152}.page-footer{margin-top:32px;padding:17px 0 23px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#838c80;font-size:10px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--ink);color:white;padding:12px 20px;border-radius:12px;z-index:20;transition:.2s;font-size:14px}.toast.show{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.chord-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}.chord-tile{padding:18px;text-align:left;border-radius:15px}.chord-tile strong{display:block;font:600 25px 'Manrope',sans-serif}.chord-tile small{display:block;margin-top:6px;color:var(--muted);font-size:12px}.chord-tile.active{background:var(--lavender);border-color:#c8bcdb}.diagram{width:150px;align-self:center;height:165px;flex-shrink:0}.diagram text{font-family:'DM Sans',sans-serif}.chord-detail .big-note{font-size:37px;margin:6px 0 0}.chord-detail .detail-description{margin:5px 0 12px}.chord-detail .note-chips{margin:9px 0}.chord-detail .btn{font-size:12px}.progression-editor{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;margin-top:22px}.progression-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.progression-toolbar h2{margin-right:auto}.progression-toolbar select{font-size:13px}.sequence{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 12px;min-height:168px}.step{min-width:152px;width:152px;flex-shrink:0;background:#f4f5ee;border:1px solid #e1e7d8;border-radius:15px;padding:14px;position:relative}.step.active{border-color:var(--green);box-shadow:0 0 0 2px #2c625822;background:#e5eddc}.step-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.step-number{font-size:10px;letter-spacing:1px;color:var(--muted)}.icon-btn{background:transparent;border:0;padding:3px 6px;font-size:15px}.step select{width:100%;font-size:20px;font-weight:600;padding:4px;background:transparent;border:0;border-radius:4px}.duration-field{display:flex;align-items:center;gap:6px;margin-top:7px;font-size:11px;color:var(--muted)}.duration-field input{width:52px;padding:4px;font-size:12px;background:#fff9}.step-order{display:flex;justify-content:flex-end;margin-top:8px;gap:2px}.add-step{border:1px dashed #b7c5ad;background:transparent;border-radius:15px;min-width:115px;color:#69805b;font-size:13px;padding:15px}.add-step span{font-size:25px;display:block;margin-bottom:8px}.transport{border-top:1px solid var(--line);padding-top:18px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}.tempo-control{display:flex;align-items:center;gap:8px;font-size:13px}.tempo-control input[type=range]{width:90px}.tempo-control input[type=number]{width:66px;padding:7px}.transport .check-label{font-size:12px}.beat-display{margin-left:auto;display:flex;gap:6px;align-items:center;color:var(--muted);font-size:12px}.beat-dot{width:8px;height:8px;border-radius:50%;background:#d8dfd2}.beat-dot.on{background:var(--green);box-shadow:0 0 0 3px #dce7cf}.sequence-info{color:var(--muted);font-size:12px;margin-top:13px}.help-text{font-size:12px;color:var(--muted)}.empty-sequence{padding:26px 15px;color:var(--muted);font-size:14px}.muted-chord .note-dot{color:#9eaaa0!important;background:#f7f8f4!important;border-color:transparent!important}.playing-label{margin-bottom:12px;font-size:12px}.meter-track{height:4px;background:#d9e2ce;border-radius:5px;width:100%;margin-top:15px;overflow:hidden}.meter-fill{height:100%;background:var(--green);width:0}.volume-field{display:flex;align-items:center;gap:8px;font-size:12px}.volume-field input{width:75px}
@media(min-width:1500px){main{padding:0 55px}.workspace{grid-template-columns:minmax(0,1fr) 280px}.fretboard{grid-template-rows:28px repeat(6,47px) 25px}.fret-cell .note-dot{width:31px;height:31px;font-size:11px}.panel-heading{padding-top:28px}.big-note{font-size:76px}.detail-panel{padding:28px}.page-heading{margin-top:43px}}
@media(max-width:1200px){.sidebar{width:205px;padding-left:14px;padding-right:14px}main{margin-left:205px;padding:0 26px}.workspace{grid-template-columns:minmax(0,1fr) 205px;gap:14px}.board-footer{padding:14px}.board-footer>span{display:none}.detail-panel{padding:20px}.topbar>span{font-size:10px}.nav-button{font-size:12px}.notes-strip{gap:6px}.note-tile{font-size:16px}.controls-panel{gap:12px}.heading-badge{display:none}.transport{gap:12px}}
@media(max-width:980px){.sidebar{width:82px;padding:28px 12px}.brand{padding:0;justify-content:center}.brand>span:last-child,.nav-label,.nav-button:not(.active)~.none,.sidebar-note,.tuning-status{display:none}.nav-button{font-size:0;justify-content:center;margin-top:14px;padding:12px}.nav-button>span{font-size:26px}.sidebar nav{margin-top:34px}main{margin-left:82px;padding:0 24px}.workspace{grid-template-columns:minmax(0,1fr) 190px}.detail-panel{padding:18px}.big-note{font-size:53px}.topbar{height:75px}.learning-card{padding:18px}.learning-icon{display:none}h1{font-size:32px}.controls-panel .field>span{font-size:12px}.controls-panel select{font-size:13px}.notes-strip{grid-template-columns:repeat(6,1fr)}}
@media(max-width:720px){.sidebar{position:static;width:auto;padding:15px 20px;flex-direction:row;align-items:center;justify-content:space-between;border-right:0;border-bottom:1px solid var(--line)}.brand-mark{width:32px;height:36px;font-size:28px;border-radius:10px}.sidebar nav{display:flex;margin:0;gap:7px}.nav-button{margin:0;padding:7px 11px;width:auto}.nav-button>span{font-size:22px}main{margin:0;padding:0 18px}.topbar{height:65px}.topbar>span{font-size:8px;letter-spacing:1px}.notation-control>span{display:none}.segmented button{font-size:11px;padding:5px 8px}.page-heading{margin:25px 0 22px}h1{font-size:28px}.page-heading p:last-child{font-size:13px;max-width:330px}.workspace{grid-template-columns:1fr}.detail-panel{display:grid;grid-template-columns:1fr 1fr;gap:5px 15px}.detail-panel .big-note{grid-column:1;margin:0;font-size:45px}.detail-panel .detail-description{grid-column:1/-1;margin:0}.detail-panel .btn{grid-column:2;grid-row:2;margin:0}.detail-panel .btn+.btn{grid-row:3}.detail-panel .note-chips{margin:0}.detail-panel .diagram{grid-column:2;grid-row:1/5;justify-self:center}.chord-detail .btn{grid-column:auto;grid-row:auto!important;margin-top:10px}.chord-detail .detail-description{margin:8px 0}.controls-panel .control-end{margin:0}.learning-cards{grid-template-columns:1fr}.section-header>div{display:block}.section-header p{margin-top:5px}.page-footer span:last-child{display:none}.progression-editor{padding:16px}.transport .beat-display{margin-left:0}.panel-heading{padding:20px 18px 10px}.fretboard{min-width:640px}.progression-toolbar{gap:10px}.progression-toolbar h2{width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* Readability refinements for a desktop practice surface. */
.nav-label,.topbar>span,.eyebrow,.panel-heading .eyebrow,.detail-tag{font-size:12px;letter-spacing:1.2px}
.nav-button{font-size:14px}.page-heading p:last-child{font-size:16px}.notation-control,.segmented button,.board-actions select,.field>span,.field>label,.help-text,.volume-field{font-size:14px}
.fretboard{min-width:665px;grid-template-rows:28px repeat(6,45px) 24px}.fret-cell .note-dot{width:34px;height:34px;font-size:12px}.fret-label{font-size:12px}.board-footer{font-size:12px}.detail-description{font-size:14px}.detail-subtitle{font-size:14px}.chip{font-size:13px}
.section-header p,.text-btn,.learning-card h3,.learning-card p,.chord-tile small,.transport .check-label,.sequence-info,.empty-sequence,.chord-detail .btn{font-size:14px}.learning-card p{line-height:1.65}.note-tile small,.page-footer,.tuning-status{font-size:12px}.learning-card{padding:20px}.step{width:185px;min-width:185px}.duration-field{font-size:12px;white-space:nowrap}.duration-field input{flex-shrink:0;width:48px}.step-number{font-size:12px}.step select{font-size:22px}.add-step{font-size:14px}.progression-toolbar select{font-size:14px}.muted-chord .note-dot{color:#62705d!important}
@media(max-width:1200px){.topbar>span{font-size:11px}.detail-panel{padding:18px}.board-footer>span{display:none}}
@media(max-width:980px){.nav-button{font-size:0}.topbar>span{font-size:10px}.controls-panel .field>span{font-size:14px}.controls-panel select{font-size:14px}.heading-badge{display:none}}
@media(max-width:720px){.topbar>span{max-width:130px}.page-heading p:last-child{font-size:14px}.segmented button{font-size:12px}.controls-panel{gap:12px}.controls-panel .field{flex-wrap:wrap}.learning-card p{font-size:14px}.board-footer{padding:13px 16px}.panel-heading .eyebrow{font-size:10px}.note-tile{font-size:16px}.sequence-info{font-size:12px}}
/* Progression library */
[hidden]{display:none!important}
.library-heading{display:flex;justify-content:space-between;align-items:center;margin:8px 0 18px;gap:16px}
.library-heading h2{font-size:22px}.library-count{font-size:13px;color:var(--muted);white-space:nowrap}
.progression-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.progression-card{display:flex;flex-direction:column;text-align:left;padding:18px;border-radius:15px;min-height:133px;gap:10px;background:#fff}
.progression-card-top{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;gap:12px}
.progression-card strong{font:700 16px 'Manrope',sans-serif;line-height:1.4}
.progression-formula{font-size:13px;letter-spacing:.1px;color:#536852;margin-top:auto;line-height:1.6}
.progression-card.selected{background:#e6eddc;border-color:#769060;box-shadow:inset 0 0 0 1px #769060}
.progression-card:nth-child(4n+2):not(.selected){background:#f2eef7}
.progression-card:nth-child(4n+3):not(.selected){background:#faf0e6}
.progression-story{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:34px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:27px;margin:20px 0 32px}
.progression-explanation h3{font-size:24px;letter-spacing:-.7px;margin-bottom:11px}
.progression-explanation>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.7;max-width:640px}
.example-chords{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}
.example-chords span{padding:7px 12px;border-radius:10px;background:#edf2e6;font-weight:600;font-size:17px}
.progression-explanation .listening-tip{border-left:3px solid #d7cce8;padding-left:13px;margin:0 0 20px}
.load-hint{display:block;color:var(--muted);font-size:12px;margin-top:7px}
.song-examples{border-left:1px solid var(--line);padding-left:30px}
.song-reference{display:flex;gap:12px;align-items:start;padding:15px 0;text-decoration:none;border-bottom:1px solid var(--line)}
.song-reference:hover strong{text-decoration:underline;text-underline-offset:3px}.song-symbol{background:#f1eaf7;border-radius:10px;padding:6px 10px;color:#796387;flex-shrink:0}
.song-reference strong,.song-artist,.song-reference small{display:block}.song-reference strong{font-size:16px}.song-artist{font-size:14px;color:var(--muted);margin:3px 0 6px}.song-reference small{font-size:12px;color:#667168;line-height:1.6}.source-arrow{margin-left:auto;color:#819175}
.song-note{font-size:12px;color:var(--muted);line-height:1.65;margin-top:16px}.workspace{scroll-margin-top:22px}
/* A capo moves the shape and the sounding notes together. */
.capo-summary{font-size:14px;background:#eee6f6;border:1px solid #ddd0ea;border-radius:10px;padding:9px 12px;margin-top:12px;width:100%;color:#5b496a}.capo-summary span{font-size:12px}
.fret-cell.behind-capo{opacity:1;background:#e9e8e5;cursor:default}.fret-cell.behind-capo:before{background:#c9c7bf}.fret-cell.at-capo{border-right:5px solid #9880b4;background:#ece4f3}.fret-label.capo-label{color:#74558e;font-weight:700}
.fretboard{grid-template-columns:44px repeat(var(--frets,12),minmax(44px,1fr))}
.step-capo{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);margin-top:12px}.step .step-capo select{font-size:12px;font-weight:400;padding:4px;width:108px;min-width:0;background:#fff9}.sounding-step{font-size:12px;color:#735586;margin:6px 0 0}.step{width:210px;min-width:210px}.step-order{margin-top:7px}
@media(max-width:1250px){.progression-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progression-card{min-height:113px;padding:15px}.progression-story{gap:22px;padding:22px}.song-examples{padding-left:22px}}
@media(max-width:720px){.library-heading{align-items:start}.library-heading h2{font-size:20px}.library-count{display:none}.progression-grid{gap:9px}.progression-card{padding:13px}.progression-card strong{font-size:14px}.progression-formula{font-size:12px}.progression-card-top{font-size:12px}.progression-story{grid-template-columns:1fr;padding:20px;gap:23px}.song-examples{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:20px}.capo-summary{grid-column:1/-1}.chord-detail .diagram{grid-row:1/5}.step{width:200px;min-width:200px}.progression-toolbar .help-text{width:100%;order:3}}
/* Front view of a right-handed guitar: bass strings above, nut at the right. */
.board-scroll{direction:rtl}
.fretboard{direction:ltr;grid-template-columns:repeat(var(--frets,12),minmax(44px,1fr)) 44px}
.fret-cell{border-right:0;border-left:1px solid #cfceb9}
.fret-cell.open{border-right:0;border-left:4px solid #b3b29a}
.fret-cell.at-capo{border-right:0;border-left:5px solid #9880b4}
.chord-picker{display:flex;align-items:center;gap:20px;padding:20px 23px;background:#edf2e7;border:1px solid #dce5d3;border-radius:16px;margin-top:24px}
.chord-picker .field{flex-direction:row;align-items:center;gap:14px}.chord-picker .field>span{color:var(--ink);font-size:16px;font-weight:600}.chord-picker select{min-width:115px}.chord-picker p{color:var(--muted);font-size:14px}
.song-search{margin-left:auto;flex-shrink:0;font-size:12px;color:var(--green);white-space:nowrap}
@media(max-width:1250px){.song-reference{flex-wrap:wrap}.song-reference>span:nth-child(2){flex:1;min-width:140px}.song-search{width:100%;padding-left:45px}}
@media(max-width:720px){.chord-picker{align-items:start;flex-direction:column;gap:10px;padding:16px}.chord-picker p{font-size:13px}}
/* Small workshops share the same calm palette as the exploration views. */
.mode-switch{display:inline-flex;gap:4px;padding:5px;flex-wrap:wrap}.mode-switch button{padding:9px 15px;font-size:14px;white-space:nowrap}.controls-panel .mode-switch{margin-right:12px}
.fret-cell[aria-pressed="false"] .note-dot{background:#f2f1e5;color:#58634d;font-size:12px}.fret-cell[aria-pressed="false"]:hover .note-dot{background:#e1d6ed;color:#354e43}
.sequence-jump-hint{font-size:13px;color:var(--muted);margin:0 0 14px;line-height:1.6}.step{cursor:pointer}.step .step-number{background:#fff9;border:1px solid #d4dfca;border-radius:8px;padding:8px 10px;color:var(--green);text-align:left;flex:1;margin-right:6px}.step .step-number:hover{background:#dbe8d1}.step.active .step-number{background:var(--green);color:white;border-color:var(--green)}
.capo-alternatives{margin-top:28px;padding:26px;background:#f0edf6;border:1px solid #e0d8e9;border-radius:20px;scroll-margin-top:24px}.capo-alternatives-heading{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:22px}.capo-alternatives-heading h2{font-size:23px;margin-bottom:8px}.capo-alternatives-heading p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:640px;line-height:1.7}.current-shape{display:flex;flex-direction:column;gap:4px;padding:12px 16px;background:#fff8;border-radius:12px;min-width:220px}.current-shape span,.current-shape small{font-size:12px;color:#665d72}.current-shape strong{font-size:17px}.capo-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.capo-option{background:#fffc;border:1px solid #ded9e5;border-radius:15px;padding:20px;display:flex;flex-direction:column;gap:12px}.capo-option-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.capo-position{color:#624d76;background:#eee6f6;border-radius:7px;padding:5px 8px;font-size:12px;font-weight:600}.capo-benefit{font-size:11px;color:#32644f;background:#e7efdf;padding:4px 7px;border-radius:7px}.capo-shape-label{font-size:10px;color:var(--muted);letter-spacing:1px;margin-top:5px}.capo-equation{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.capo-equation>strong{font:600 32px 'Manrope',sans-serif;letter-spacing:-1px}.capo-equation>span{font-size:14px;color:var(--muted)}.capo-features{font-size:13px;color:#5e675f}.capo-option-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px}.capo-option-actions .btn{font-size:12px;padding:9px 11px}.more-capo-options{margin-top:16px}.more-capo-options summary{cursor:pointer;font-size:13px;color:#65507b;padding:8px 0}.more-capo-options[open] summary{margin-bottom:10px}.capo-song-note{font-size:13px;line-height:1.7;color:#5c6559;background:#e7edde;padding:12px 15px;border-radius:10px}.chord-detail #find-capo-options{margin:12px 0 0;padding:6px 0;text-align:left;color:#6e5286;font-size:12px}
@media(max-width:1200px){.capo-alternatives-heading{flex-direction:column;gap:12px}.capo-option{padding:15px}.capo-option-actions .btn{width:100%}}
@media(max-width:850px){.capo-options{grid-template-columns:1fr}.capo-option-actions .btn{width:auto}.capo-alternatives{padding:18px}}
.identify-detail{gap:14px;align-items:stretch}.identify-detail h2{font-size:28px;line-height:1.2;letter-spacing:-.7px}.match-result{padding:0 0 14px;border-bottom:1px solid #d7dfd2}.match-result h2{font-size:38px}.match-result h3{font-size:25px}.match-result p{font-size:13px;color:var(--muted);margin:5px 0 10px}.match-result .text-btn{font-size:12px;text-align:left}
.selected-strings{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.string-choice{display:flex;flex-direction:column;align-items:center;gap:9px;padding:20px 10px;background:#eee9f5;border-radius:14px}.string-choice small,.string-choice span{color:#58665d;font-size:12px}.string-choice strong{font-size:24px}.string-choice:disabled{opacity:.65;background:#edf0e8}
.feature-note{font-size:13px;line-height:1.7;color:var(--muted);margin:13px 0}.degree-composer{padding:24px;background:#f2eef7;border:1px solid #e1d9e9;border-radius:16px;margin:0 0 24px}.degree-heading{display:flex;align-items:center;justify-content:space-between;gap:22px}.degree-heading h3{font-size:21px}.degree-key{display:flex;gap:14px;flex-wrap:wrap}.degree-key .field{gap:5px}.degree-key select{min-width:100px;background:#fff}.degree-palette{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin:20px 0}.degree-palette button{background:#fff9;display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px;border-radius:12px}.degree-palette strong{font-size:24px}.degree-palette span{font-size:13px;color:var(--muted)}.degree-palette button:hover{background:#e1d6ed;border-color:#9982b2}
.pattern-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.pattern-field{flex:1;min-width:220px}.pattern-field input{width:100%;background:white;font-size:19px;padding:12px 14px;border:1px solid #bdb1cc;border-radius:9px;color:var(--ink)}.pattern-preview{padding:13px 16px;background:#fff9;border-radius:10px;line-height:1.8;color:#315f51;font-weight:600;font-size:15px}.pattern-preview.invalid{color:#884735;background:#faeee7}.resolved-chord{color:#5b496a;font-size:16px;font-weight:600;margin:10px 0}.progression-toolbar .mode-switch{margin-left:auto}.progression-toolbar h2{white-space:nowrap}
@media(max-width:1100px){.degree-heading{align-items:start;flex-direction:column}.selected-strings{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.degree-composer{padding:16px}.degree-palette{grid-template-columns:repeat(4,1fr)}.pattern-row>.btn{flex:1}.progression-toolbar .mode-switch{margin-left:0}.mode-switch button{padding:8px 10px;font-size:13px}.identify-detail{display:flex;flex-direction:column}.selected-strings{gap:8px}}
