:root{--paper:#f7f3ec;--ink:#231c1a;--muted:#6b5f55;--rule:#ddd3c5;--accent:#7b1e2b;--on-accent:#fff;--original:#f1e3bf;--on-original:#54400f;--serif:Georgia, "Times New Roman", serif;--gutter:16px}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-family:var(--serif);margin:0;font-weight:400;line-height:1.15}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page{max-width:720px;padding:32px var(--gutter) 48px;margin:0 auto}.page-wide{max-width:1040px}.site-title{font-size:clamp(2rem,6vw,2.75rem)}.site-intro{color:var(--muted);margin:8px 0 0}.index-title{font-family:var(--serif);margin:28px 0 0;font-size:1.375rem;font-weight:400;line-height:1.25}.search{z-index:1;background:var(--paper);margin-top:4px;padding:8px 0;position:sticky;top:0}.search input{border:1px solid var(--rule);width:100%;color:inherit;font:inherit;background:#fff;border-radius:6px;padding:12px 14px}.song-list{margin:8px 0 0;padding:0;list-style:none}.song-list a{border-bottom:1px solid var(--rule);padding:12px 4px;text-decoration:none;display:block}.song-list a:hover .song-title{color:var(--accent)}.song-title{font-family:var(--serif);font-size:1.2rem;line-height:1.3;display:block}.song-credits{color:var(--muted);margin:0;font-size:.875rem;display:block}.song-credits span:not(:last-child):after{content:" · "}.back-link{color:var(--muted);font-size:.875rem}.back-link:before{content:"‹ "}.song-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin:12px 0 20px;display:flex}.song-header h1{font-size:clamp(1.75rem,5vw,2.5rem)}.song-actions{gap:8px;display:flex}.print-button{border:1px solid var(--muted);min-height:44px;color:inherit;font:inherit;cursor:pointer;background:#fff;border-radius:6px;padding:8px 14px}.sheet-frame{min-height:100vh;position:relative}.sheet-status{color:var(--muted);margin:0;position:absolute;top:16px;left:16px}.sheet{border:1px solid var(--rule);background:#fff;border-radius:6px;overflow:hidden}.key-select{position:relative}.key-button{border:1px solid var(--muted);min-height:44px;color:inherit;font:inherit;cursor:pointer;background:#fff;border-radius:6px;padding:8px 36px 8px 14px;position:relative}.key-button:after{content:"";border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;position:absolute;top:50%;right:14px;transform:translateY(-70%)rotate(45deg)}.key-list{z-index:2;border:1px solid var(--rule);background:#fff;border-radius:6px;width:200px;max-height:70vh;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto;box-shadow:0 8px 24px #231c1a2e}.key-list:focus{outline:none}.key-option{cursor:pointer;border-radius:4px;align-items:center;gap:8px;min-height:40px;padding:4px 8px;display:flex}.key-option+.key-option{margin-top:2px}.key-option[data-original=true]{background:var(--original);color:var(--on-original)}.key-option[data-selected=true]{background:var(--accent);color:var(--on-accent);font-weight:600}.key-option[data-active=true]{outline-offset:-2px;outline:2px solid}.key-check{flex:none;width:16px;height:16px}.key-name{flex:1}.key-badge{border:1px solid;border-radius:999px;padding:0 8px;font-size:.75rem;font-weight:400}.site-footer{border-top:1px solid var(--rule);color:var(--muted);font-size:.875rem}.site-footer-inner{max-width:1040px;padding:24px var(--gutter) 32px;margin:0 auto}.site-footer p{margin:0 0 4px}.site-footer h2{color:var(--ink);font-family:var(--serif);margin:0;font-size:1.125rem;font-weight:400}.feedback-links{flex-wrap:wrap;gap:4px 20px;margin:8px 0 20px;padding:0;list-style:none;display:flex}.feedback-links a{color:var(--accent);padding:8px 0;display:inline-block}@page{size:A4;margin:15mm}@media print{body{background:#fff}.song-actions,.back-link,.site-footer,.todotango-link{display:none}.page{max-width:none;padding:0}.song-header{margin:4px 0}.song-header h1{font-size:1.5rem}.song-credits{font-size:.75rem}.song-credits a{text-decoration:none}.song-credits span:not(:last-child):has(+a):after{content:none}.sheet-frame{min-height:0}.sheet{border:0;overflow:visible;width:100%!important}.sheet>div{break-inside:avoid}.sheet svg{display:block;width:100%!important;height:auto!important}}
