: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{display:flex;align-items:center;gap:14px;padding:12px 20px;border-bottom:1px solid var(--rule);max-width:980px;margin:0 auto}.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)}
