:root{--bg:#f4f4f2;--fg:#1a1a1a;--muted:#6b6b6b;--line:#ddd;--card:#fff;--accent:#b0190f;color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#171717;--fg:#eee;--muted:#999;--line:#333;--card:#222}}*{box-sizing:border-box}body{background:var(--bg);margin:0}button,.btn,select{vertical-align:middle;box-sizing:border-box;line-height:1.2;font:inherit;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;border-radius:6px;padding:6px 10px;font-size:14px;text-decoration:none;display:inline-block}button:hover,.btn:hover{border-color:var(--muted)}button.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}button.primary:disabled{opacity:.4;cursor:not-allowed}button.danger{color:#c33}.home{max-width:900px;margin:0 auto;padding:16px}.topbar{background:var(--bg);z-index:2;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex;position:sticky;top:0}.search{border:1px solid var(--line);background:var(--card);min-width:220px;color:var(--fg);border-radius:8px;flex:1;padding:10px 14px;font-size:17px}.songs{margin:8px 0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 8px;display:flex}.row:hover{background:var(--card)}.row-main{color:inherit;flex-wrap:wrap;flex:1;align-items:baseline;gap:0 10px;text-decoration:none;display:flex}.row-title{font-size:16px;font-weight:600}.row-artist,.row-bpm{color:var(--muted);font-size:14px}.row-snippet{width:100%;color:var(--muted);font-size:13px;font-style:italic}.row-key{text-align:center;min-width:2.5em;font-weight:700}.star{color:var(--muted);background:0 0;border:none;padding:0 4px;font-size:18px}.star.on{color:#e0a800}.divider{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:14px 8px 4px;font-size:12px}.empty-state{text-align:center;color:var(--muted);padding:40px}.songview{padding:12px}.toolbar{background:var(--bg);z-index:2;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding:6px 0;display:flex;position:sticky;top:0}.keys{flex-wrap:wrap;gap:2px;display:flex}.keys button{min-width:2.4em;padding:5px 8px;font-weight:600}.keys button.orig{border-color:var(--accent)}.keys button.on{background:var(--fg);color:var(--bg)}.single .preview{overflow-x:auto}.split{grid-template-columns:minmax(300px,1fr) minmax(0,1.4fr);align-items:start;gap:12px;display:grid}.editor-col{flex-direction:column;gap:6px;display:flex}.editor{border:1px solid var(--line);background:var(--card);width:100%;height:75vh;color:var(--fg);resize:vertical;border-radius:6px;padding:10px;font:13px/1.45 ui-monospace,Consolas,monospace}.issues{max-height:20vh;margin:0;padding:0;font-size:13px;list-style:none;overflow:auto}.issues .error{color:#c33}.issues .warn{color:#b07b00}.preview{overflow:auto}.modal{z-index:10;background:#00000073;justify-content:center;align-items:flex-start;padding:2vh 1vw;display:flex;position:fixed;inset:0}.dialog{background:var(--bg);border-radius:10px;width:100%;max-width:1500px;max-height:96vh;padding:12px;overflow:auto}.dialog-head,.dialog-foot{align-items:center;gap:10px;margin-bottom:8px;display:flex}.dialog-foot{justify-content:flex-end;margin:8px 0 0}.hint{color:var(--muted);flex:1;font-size:13px}.dialog .preview .page{zoom:.75}@media screen and (width<=900px){.split{grid-template-columns:1fr}.page{zoom:.45}}.home-wrap{min-height:100vh;display:flex}.home-wrap .home{flex:1;max-width:1000px;margin:0}.sidebar{border-right:1px solid var(--line);flex-shrink:0;width:250px;height:100vh;padding:16px 8px;position:sticky;top:0;overflow:auto}.tree,.tree ul{margin:0;padding:0;list-style:none}.tree-head{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);justify-content:space-between;align-items:center;margin:16px 6px 4px;font-size:12px;display:flex}.tree-head button{padding:2px 8px;font-size:12px}.fnode{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:4px;padding:5px 6px;font-size:14px;display:flex}.fnode:hover{background:var(--card)}.fnode.sel{background:var(--fg);color:var(--bg)}.fnode.over{outline:2px dashed var(--accent)}.fname{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.fnode input{font:inherit;flex:1;min-width:0}.fcount{opacity:.6;font-size:12px}.twisty{width:14px;color:inherit;background:0 0;border:none;padding:0;font-size:11px}.factions{display:none}.fnode:hover .factions{display:inline-flex}.factions button{color:inherit;background:0 0;border:none;padding:0 3px;font-size:13px}.tree-hint{color:var(--muted);margin:16px 6px;font-size:11px}.row[draggable]{cursor:grab}.chord-pop{z-index:20;background:var(--card);color:var(--fg);border:1px solid var(--line);text-align:center;border-radius:10px;width:160px;padding:8px 10px;position:fixed;box-shadow:0 6px 24px #00000040}.chord-pop-name{font-size:16px;font-weight:800}.chord-pop-nav{justify-content:space-between;align-items:center;font-size:13px;display:flex}.chord-pop-nav button{padding:2px 12px;font-size:18px}.chord-pop-none{color:var(--muted);padding:20px 0}@media (width<=700px){.home-wrap{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--line);width:auto;height:auto;position:static}}.dup-warn{background:#e0a8001f;border:1px solid #e0a800;border-radius:8px;flex-direction:column;gap:6px;margin-top:8px;padding:10px 12px;font-size:14px;display:flex}.dup-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dup-row span{flex:1}.url-form{flex:1;gap:6px;min-width:260px;display:flex}.url-form input{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:6px;flex:1;padding:6px 10px;font-size:14px}.ch.sel{background:#1a73e81f;border-radius:3px;outline:2px solid #1a73e8}.nudge-bar{background:var(--card);border:1px solid var(--line);z-index:15;border-radius:10px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}.nudge-bar span{color:var(--muted)}@media (width<=700px){.toolbar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.toolbar>*,.keys{flex-shrink:0}.keys{flex-wrap:nowrap}}.sizer{align-items:center;gap:4px;padding:0 4px;display:inline-flex}.sizer span{color:var(--muted);font-size:12px;font-weight:700}.sizer span.big{font-size:18px}.sizer input[type=range]{width:110px}.sizer input.auto{opacity:.45}.sizer select{padding:5px 6px}.sync{position:relative}.sync-badge{align-items:center;gap:6px;display:inline-flex}.sync-badge .dot{background:#999;border-radius:50%;width:8px;height:8px}.s-synced .dot{background:#2a9d48}.s-syncing .dot{background:#e0a800}.s-offline .dot{background:#999}.s-error .dot,.s-not-allowed .dot{background:#c33}.s-signed-out .dot{background:#1a73e8}.sync-pop{background:var(--card);border:1px solid var(--line);z-index:30;border-radius:10px;width:280px;padding:12px;font-size:14px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 6px 24px #0003}.sync-pop p{margin:0 0 8px}.sync-pop form{flex-direction:column;gap:8px;display:flex}.sync-pop input{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:6px;padding:8px}.libfolder{flex-direction:column;gap:6px;margin-top:8px;padding:0 6px;display:flex}.libfolder .tree-head{margin:8px 0 0}.libfolder-name{justify-content:space-between;font-size:14px;display:flex}.libfolder-actions{gap:6px;display:flex}.libfolder-actions button,.libfolder>button{padding:4px 8px;font-size:13px}.tree-hint.err{color:#c33}.sync-pop .google{color:#222;background:#fff;border:1px solid #ccc;font-weight:600}.sync-pop .or{text-align:center;color:var(--muted);font-size:12px}.sync-actions{gap:6px;display:flex}.admin-tag{background:var(--fg);color:var(--bg);border-radius:10px;margin-left:6px;padding:1px 6px;font-size:11px}.dialog.members{max-width:560px}.member-list{margin:10px 0;padding:0;list-style:none}.member-list li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 0;font-size:14px;display:flex}.member-email{flex:1}.hint.err{color:#c33}.auth-tabs{gap:2px;margin-bottom:2px;display:flex}.auth-tabs button{flex:1;padding:5px 4px;font-size:12px}.auth-tabs button.on{background:var(--fg);color:var(--bg)}.sync-pop .mode{border-left:3px solid;border-radius:6px;padding:6px 8px;font-size:13px}.sync-pop .mode.shared{background:#2a9d481a;border-color:#2a9d48}.sync-pop .mode.private{background:#1a73e814;border-color:#1a73e8}.member-link{color:var(--muted);opacity:.55;cursor:pointer;background:0 0;border:none;margin:24px 6px 8px;padding:0;font-size:11px;text-decoration:underline;display:block}.member-link:hover{opacity:1}.dialog.signin{flex-direction:column;gap:8px;max-width:380px;display:flex}.dialog.signin input{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:6px;padding:8px}.toolbar .spacer{flex:1}.keypick{align-items:stretch;display:inline-flex}.keypick button{border-radius:6px 0 0 6px;padding:6px 12px;font-weight:700}.keypick button:last-child{border-radius:0 6px 6px 0}.keypick select{border-left:none;border-right:none;border-radius:0;min-width:150px;font-weight:700}.menu-wrap{position:relative}.menu{z-index:25;background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:190px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 6px 24px #0003}.menu>button{text-align:left;background:0 0;border:none;padding:8px 10px}.menu>button:hover{background:var(--bg)}.size-menu{gap:10px;min-width:230px;padding:10px}.size-menu label{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.size-menu input.auto{opacity:.45}.size-menu>button{border:1px solid var(--line);text-align:center}button.on-soft{border-color:var(--accent)}@media (width<=700px){.toolbar{flex-wrap:nowrap;overflow:visible}.keypick select{width:120px;min-width:0}}.editor-tips{color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;font-size:12.5px;display:flex}.editor-tips b{color:var(--fg)}.editor-tips code{background:var(--bg);border-radius:4px;padding:0 4px;font-size:12px}.tip-chips{flex-wrap:wrap;gap:4px;display:flex}.tip-chips button{border-radius:12px;padding:3px 8px;font-size:12px}.tip-chips button:disabled{opacity:.5;cursor:default}.tip-more{font-size:11.5px}.editor{height:62vh}.dialog>.dialog-head{z-index:5;background:var(--bg);flex-wrap:wrap;margin-top:-8px;padding:8px 0;position:sticky;top:-12px}@media (width<=700px){.dialog>.dialog-head .hint:not(.busy){display:none}.dialog>.dialog-head .hint.busy{flex-basis:100%;order:11}.dialog>.dialog-head .url-form{flex-basis:100%;order:10}.modal{padding:0}.dialog{border-radius:0;height:100vh;max-height:100vh}}.row{cursor:pointer}.row-main{align-self:stretch;align-items:center}.dup-group{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;margin:8px 0;padding:8px 10px;display:flex}.sync-actions{flex-wrap:wrap}.side{border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;gap:8px;width:250px;height:100vh;padding:12px 8px;display:flex;position:sticky;top:0;overflow:auto}.side .sidebar{border:none;width:auto;height:auto;padding:0;position:static;overflow:visible}.lib-tabs{background:var(--card);border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.lib-tabs button{background:0 0;border:none;border-radius:7px;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;font-size:14px;font-weight:700;display:flex}.lib-tabs button small{opacity:.7;font-size:11px;font-weight:400}.lib-tabs button.on{background:var(--fg);color:var(--bg)}.merge-box{border-top:1px solid var(--line);flex-direction:column;gap:4px;margin-top:auto;padding:8px 6px 0;display:flex}.merge-box button{font-weight:600}.merge-box .tree-hint{margin:0}.badge{white-space:nowrap;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.b-newer-there{color:#1a5fc2;background:#1a73e824}.b-newer-here{color:#8a6400;background:#e0a8002e}.b-only-here{background:var(--bg);color:var(--muted);border:1px solid var(--line)}.merge-h{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:12px 0 4px;font-size:13px}.merge-item{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:8px;padding:6px 2px;font-size:14px;display:flex}.merge-item .hint{margin-left:auto;font-size:12px}.song-banner{background:#1a73e81a;border:1px solid #1a73e84d;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;font-size:14px;display:flex}.song-banner.here{background:#e0a8001f;border-color:#e0a80066}.scope-tag{color:var(--muted);padding:0 4px;font-size:12px}@media (width<=700px){.side{border-right:none;border-bottom:1px solid var(--line);width:auto;height:auto;position:static}.merge-box{margin-top:0}}.page{box-sizing:border-box;color:#111;background:#fff;width:8.5in;height:11in;margin:0 auto;padding:.45in .5in;font-family:Helvetica Neue,Arial,sans-serif;overflow:hidden;box-shadow:0 2px 16px #0000002e}.chart{flex-direction:column;height:100%;display:flex}.chart-head{border-bottom:1px solid #d5d5d5;margin-bottom:.8em;padding-bottom:.5em}.chart-head h1{letter-spacing:-.01em;margin:0;font-size:2.1em;font-weight:800;line-height:1.05}.chart-artist{color:#555;margin-top:.15em;font-size:1.05em}.chart-info{flex-wrap:wrap;gap:.3em 1.8em;margin:.6em 0 0;display:flex}.chart-info dt{text-transform:uppercase;letter-spacing:.1em;color:#888;font-size:.62em;font-weight:700}.chart-info dd{margin:0;font-size:1.05em;font-weight:700}.cols{column-count:2;column-fill:balance;flex:1;column-gap:2.2em;min-height:0}.sec{break-inside:avoid;margin-bottom:.9em}.sec h2{text-transform:uppercase;letter-spacing:.08em;color:#555;margin:0 0 .2em;font-size:.85em}.k-chorus{border-left:3px solid #111;padding-left:.5em}.ln{flex-wrap:wrap;align-items:flex-end;line-height:1.15;display:flex}.ln.empty{height:.6em}.ln.comment{color:#444;font-style:italic}.ln.bars,.ln.lyric-only,.ln.comment{white-space:pre-wrap;display:block}.ln.bars{letter-spacing:.02em;margin:.1em 0;font-weight:700}.seg{flex-direction:column;display:inline-flex}.seg .ch{color:#b0190f;white-space:pre;min-height:1.1em;padding-right:.3em;font-weight:700}.seg.mid .ch{padding-right:0}.seg .ly{white-space:pre}.ln.bars .bch{color:#b0190f}[data-chord]{cursor:pointer}[data-chord]:hover{text-decoration:underline}@media print{@page{size:letter;margin:0}body *{visibility:hidden}.page,.page *{visibility:visible}.page{box-shadow:none;position:absolute;top:0;left:0}}.screen-fit{color:#111;background:#fff;border-radius:8px;padding:14px 18px;font-family:Helvetica Neue,Arial,sans-serif;overflow:hidden}.screen-fit .chart-head h1{font-size:1.6em}.screen-fit.scroll{overflow:visible;height:auto!important}.screen-fit.scroll .chart{height:auto}.screen-fit.scroll .cols{flex:none}.print-only{display:none}@media print{.screen-only{display:none!important}.print-only{display:block}}.word{align-items:flex-end;display:inline-flex}.ch sup,.bch sup{vertical-align:.45em;font-size:.68em;line-height:0}
