:root{--paper: #f3ede1;--paper-card: #f9f5ec;--paper-warm: #f6eddc;--ink: #2b2620;--ink-soft: #6b6055;--ink-faint: #9c8f7c;--rule: #ddd2bd;--rule-soft: #e2d8c5;--accent: #9a5b28;--accent-bg: #f6e7d4;--good: #3f6b38;--serif: "Instrument Serif", Georgia, "Times New Roman", serif;--sans: Karla, ui-sans-serif, system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased;text-wrap:pretty}a{color:var(--accent);text-decoration:none}a:hover{color:#7a4620;text-decoration:underline}.mono{font-family:var(--mono)}.serif{font-family:var(--serif)}.page{max-width:980px;margin:0 auto;padding:0 20px 64px}.rule{height:1px;background:var(--rule);border:0}.btn{font:inherit;font-size:13px;border:1px solid #ccbfa8;border-radius:4px;background:var(--paper-card);color:#4a4239;padding:7px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:36px}.btn:hover{border-color:var(--accent)}.btn[aria-pressed=true],.btn.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}@media (pointer: coarse){.btn{min-height:44px;padding:10px 14px}}.card{border:1px solid var(--rule);border-radius:6px;background:var(--paper-card);padding:18px 20px}.tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;border:1px solid var(--rule);border-radius:999px;padding:4px 10px;color:var(--ink-soft)}.tag-ready{color:var(--good);border-color:#a9c4a2;background:#eef4ec}.tag-working{color:var(--accent);border-color:#d9b183;background:var(--accent-bg)}@media print{.no-print{display:none!important}html,body{background:#fff}.page{max-width:none;padding:0}.section{break-inside:avoid}}.chart{margin-top:26px}.section{padding:6px 8px;border-radius:5px;margin:0 -8px 4px;cursor:pointer}.section.now{background:#eae0cb}.section .chords{font-size:14px;font-weight:600;color:var(--accent);white-space:pre-wrap;line-height:1.5}.section .words{font-size:19px;line-height:1.55}.section .w{color:var(--ink)}.section .w.sung{color:var(--accent)}.instrumental{border-left:2px solid var(--rule);border-radius:0 5px 5px 0;padding-left:12px}.instrumental.now{border-left-color:var(--accent)}.section-label{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:3px}.chip-implied,.section .chords em{font-style:italic;opacity:.6}@media (max-width: 640px){.section .words{font-size:17px}.section .chords{font-size:13px}}.topbar{border-bottom:1px solid var(--rule)}.topbar-inner{max-width:980px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:18px}.brand{font-size:21px;color:var(--ink)}.brand:hover{text-decoration:none}.page.narrow{max-width:460px}.hero{font-size:40px;margin:34px 0 6px}.hero-small{font-size:27px;margin:34px 0 10px;line-height:1.2}.muted{color:var(--ink-soft)}.small{font-size:12.5px}.search{width:100%;font:inherit;font-size:15px;padding:12px 14px;margin-top:18px;border:1.5px solid var(--ink);border-radius:5px;background:var(--paper-card);color:var(--ink)}.search::placeholder{color:var(--ink-faint)}.section-heading{font-size:20px;border-bottom:2px solid var(--ink);padding-bottom:8px;margin:30px 0 0}.song-list{list-style:none;margin:0;padding:0}.song-row{display:flex;align-items:center;gap:15px;padding:12px 4px;border-bottom:1px solid var(--rule-soft);color:inherit}.song-row:hover{text-decoration:none;background:var(--paper-card)}.song-row-main{flex-grow:1;display:flex;flex-direction:column;gap:2px;min-width:0}.song-row-title{font-size:16px;font-weight:500}.art{width:42px;height:42px;border-radius:3px;background:#ddd0b4;flex:none}.song-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-bottom:2px solid var(--ink);padding-bottom:15px;margin-top:28px}.song-title{font-size:40px;margin:0;line-height:1}.song-artist{font-style:italic;font-size:18px;color:var(--ink-soft);margin:7px 0 0}.song-meta{font-size:12.5px;color:var(--ink-soft);text-align:right;line-height:1.7}.controls{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:16px 0 20px}.divider{width:1px;height:20px;background:var(--rule);margin:0 4px}.chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}.chip{font-size:17px;font-weight:600}.player{aspect-ratio:16/9;width:100%;max-width:420px;margin:20px 0 6px;border-radius:6px;overflow:hidden;background:#ddd0b4}.player iframe{width:100%;height:100%;border:0}@media (max-width: 640px){.song-head{flex-direction:column;align-items:flex-start;gap:10px}.song-title{font-size:31px}.song-meta{text-align:left}}.setlist-item{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--rule-soft)}.booklet-song{break-after:page;padding-bottom:30px}.booklet-song:last-child{break-after:auto}@media print{.player,.controls,.topbar{display:none}.booklet .section.now{background:transparent}.song-head{break-after:avoid}}.add-wrap{position:relative;display:inline-block}.popover{position:absolute;top:calc(100% + 6px);left:0;z-index:20;min-width:220px;padding:6px;display:flex;flex-direction:column;box-shadow:0 6px 20px #2b262021}.popover-row{font:inherit;font-size:14px;text-align:left;background:none;border:0;padding:9px 10px;border-radius:4px;cursor:pointer;color:var(--ink)}.popover-row:hover{background:var(--paper-warm)}.popover-row.new{color:var(--accent);border-top:1px solid var(--rule-soft);margin-top:4px}.stepper{display:inline-flex;align-items:center;gap:4px}.stepper-label{font-size:12.5px;color:var(--ink-soft);margin-right:2px}.stepper-btn{min-width:34px;justify-content:center;font-size:16px;line-height:1}.stepper-value{min-width:28px;text-align:center;font-size:13px;font-weight:600}.btn:disabled{opacity:.35;cursor:default}.btn:disabled:hover{border-color:#ccbfa8}@media (max-width: 640px){.stepper{flex:none}}.section .chords{position:relative;height:1.55em}.chord-mark{position:absolute;top:0;font:inherit;color:var(--accent);background:none;border:0;padding:0 2px;margin-left:-2px;border-radius:3px;white-space:pre}button.chord-mark{cursor:pointer}button.chord-mark:hover,button.chord-mark:focus-visible{background:var(--accent-bg);outline:none;box-shadow:0 0 0 1px var(--accent)}@media print{.chord-mark{color:var(--ink)}}.editor{position:sticky;bottom:0;z-index:20;background:var(--paper-card);border:1px solid var(--rule);border-radius:8px 8px 0 0;box-shadow:0 -6px 22px #2b26201c;padding:14px 16px 12px;margin:22px -8px 0}.editor-inner{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.editor-field{display:flex;flex-direction:column;gap:4px}.editor-label{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.editor-input{font-size:17px;font-weight:600;width:8.5em;padding:8px 10px;border:1.5px solid var(--ink);border-radius:5px;background:var(--paper);color:var(--ink)}.editor-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.editor-note{margin:9px 0 0;font-size:12.5px;color:var(--ink-soft)}@media (max-width: 560px){.editor-field{flex:1 1 100%}.editor-input{width:100%}}.shapes{display:flex;flex-wrap:wrap;gap:14px 16px;margin:18px 0 4px}.shape{margin:0;display:flex;flex-direction:column;align-items:center;gap:2px}.shape figcaption{font-size:12.5px;font-weight:600;color:var(--ink)}.diagram{color:var(--ink);display:block}@media (max-width: 640px){.shapes{gap:10px 12px}}@media print{.shapes{gap:10px 14px}}.editor-page{max-width:1180px}.editor-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:14px;margin-top:26px}.editor-eyebrow{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 2px}.editor-count{display:flex;gap:16px;font-size:12px;color:var(--ink-faint)}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px;margin-top:22px;align-items:start}@media (max-width: 900px){.editor-grid{grid-template-columns:1fr}}.editor-toolbar{margin-bottom:12px}.editor-filter{margin-top:0;max-width:320px;font-size:14px;padding:8px 11px}.editor-table{border-collapse:collapse;width:100%;font-size:14px}.editor-table th{text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;padding:6px 10px;border-bottom:1.5px solid var(--rule);white-space:nowrap}.editor-table td{padding:5px 10px;border-bottom:1px solid var(--rule-soft)}.editor-table .num{font-variant-numeric:tabular-nums}.editor-table tr.row-fixed{background:var(--accent-bg)}.editor-table tr.row-fixed td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.editor-chord{display:inline-flex;align-items:center;gap:9px}.editor-chord .editor-input{width:6.5em;font-size:15px;padding:5px 8px}.editor-nudge{display:inline-flex;gap:4px}.small-btn{font-size:11px;padding:3px 8px;min-height:0}.editor-history{position:sticky;top:14px}.history-list{list-style:none;margin:10px 0 0;padding:0}.history-list li{padding:8px 0;border-bottom:1px solid var(--rule-soft)}.history-line{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.history-chord{font-weight:600;color:var(--accent)}.history-undo{margin-left:8px}.notice{border-left:2px solid var(--accent);padding:8px 12px;margin:16px 0;background:var(--accent-bg);font-size:14px;border-radius:0 4px 4px 0}.notice-bad{border-left-color:#a33;background:#f7e9e9;color:#7a2222}.chart-editor{display:block;width:100%;min-height:62vh;resize:vertical;white-space:pre;overflow-wrap:normal;overflow-x:auto;tab-size:4;font-size:14.5px;line-height:1.5;padding:14px 16px;border:1px solid var(--rule);border-radius:6px;background:var(--paper-card);color:var(--ink);caret-color:var(--accent)}.chart-editor:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 2px var(--accent-bg)}.chart-editor:disabled{opacity:.7;cursor:not-allowed}.unsaved{color:var(--accent)}.paired{background:var(--paper-card);border:1px solid var(--rule);border-radius:6px;padding:12px 0;overflow-x:auto}.pair{display:grid;grid-template-columns:46px 1fr;align-items:start;padding:2px 0}.pair.focus{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}.pair-gutter{font-size:10px;color:var(--ink-faint);text-align:right;padding:7px 12px 0 0;user-select:none}.pair-rows{position:relative;padding-right:18px}.pair-chords{position:relative;height:1.5em;font-size:15px}.pair-chord,.pair-chord-input{position:absolute;top:0;font:inherit;font-family:var(--mono);font-size:15px;font-weight:600;color:var(--accent);background:none;border:0;padding:0 2px;margin-left:-2px;border-radius:3px;white-space:pre}.pair-chord{cursor:pointer}.pair-chord:hover:not(:disabled){background:var(--paper);box-shadow:0 0 0 1px var(--accent)}.pair-chord-input{width:5.5ch;background:var(--paper);box-shadow:0 0 0 1.5px var(--accent);outline:none}.pair-text{display:block;width:100%;font-family:var(--mono);font-size:15px;line-height:1.45;color:var(--ink);background:none;border:0;padding:0;margin:0;outline:none;caret-color:var(--accent)}.pair-text:focus{background:#ffffff73}.pair-text:disabled{color:var(--ink-soft)}.pair-marker{font-size:12px;color:var(--ink-faint);line-height:1.45}.editor-page kbd{font-family:var(--mono);font-size:10.5px;background:var(--paper-card);border:1px solid var(--rule);border-bottom-width:2px;border-radius:3px;padding:1px 5px;white-space:nowrap}.working{display:flex;align-items:center;gap:11px;margin-top:26px;font-size:15px;color:var(--ink-soft)}.spinner{width:15px;height:15px;flex:none;border:2px solid var(--rule);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}}.shell{display:flex;flex-direction:column;min-height:100vh}main{flex:1}.grow{flex:1}.nav-links{display:flex;gap:14px}.nav{font-size:13.5px;color:var(--ink-soft);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}.nav:hover{color:var(--ink);text-decoration:none}.nav.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.account{position:relative}.account-button{display:inline-flex;align-items:center;gap:8px;max-width:260px}.account-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}@media (max-width: 640px){.account-email{display:none}.account-button{padding:7px 9px}}.avatar{width:22px;height:22px;flex:none;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-size:11px;font-weight:700}.menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:208px;background:var(--paper-card);border:1px solid var(--rule);border-radius:7px;box-shadow:0 10px 26px #2b262024;overflow:hidden}.menu-head{padding:9px 13px;border-bottom:1px solid var(--rule-soft);color:var(--ink-soft)}.menu-item{display:block;width:100%;text-align:left;font:inherit;font-size:14px;padding:9px 13px;background:none;border:0;color:var(--ink);text-decoration:none;cursor:pointer}.menu-item:hover{background:var(--accent-bg);color:var(--accent);text-decoration:none}.sitefoot{margin-top:60px;border-top:1px solid var(--rule);background:var(--paper-warm)}.sitefoot-inner{max-width:980px;margin:0 auto;padding:26px 20px 8px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.small-brand{font-size:22px}.sitefoot-inner p{margin:4px 0 0;max-width:42ch}.footlinks{display:flex;gap:16px;align-items:flex-start;font-size:14px}.sitefoot-note{max-width:980px;margin:0 auto;padding:10px 20px 28px}.sitefoot-note p{margin:0;max-width:78ch}.settings-block{margin-top:30px}.settings-block .btn{margin-top:12px}.field{display:block;margin-top:12px;max-width:340px}.field-label{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:3px}.field .search{margin-top:0}.legal p,.legal li{max-width:66ch}.legal ul{padding-left:20px}.legal .section-heading{margin-top:26px}.listrow{display:flex;align-items:center;gap:10px}.listrow .song-row{flex:1}.listrow-delete{opacity:0;transition:opacity .12s}.listrow:hover .listrow-delete,.listrow-delete:focus-visible{opacity:1}@media (pointer: coarse){.listrow-delete{opacity:1}}.checked{color:var(--good)}.google-btn{width:100%;margin-top:24px;justify-content:center;gap:9px;font-size:14.5px;background:#fff}.or-rule{display:flex;align-items:center;gap:12px;margin:18px 0 14px;color:var(--ink-faint);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase}.or-rule:before,.or-rule:after{content:"";flex:1;height:1px;background:var(--rule)}
