:root{--accent:#0d9488;--accent-hover:#0f766e;--accent-soft:#e6f6f4;--accent-ring:#0d94882e;--on-accent:#fff;--text:#1f2937;--muted:#6b7280;--faint:#9ca3af;--line:#e5e7eb;--line-strong:#d1d5db;--line-faint:#f1f2f4;--bg:#fff;--bg-soft:#f6f7f9;--surface:#fff;--hover:#f1f2f4;--active:#eef0f3;--nav-bg:#f4f5f7;--nav-hover:#e8eaee;--topbar-bg:#fffffff5;--overlay:#1118275c;--danger:#dc2626;--danger-soft:#fef2f2;--danger-line:#f3b4b4;--shadow-pop:0 12px 36px #1018282e;--grid-line:#b5b2aa;--seg-on:var(--surface);--h:30px;--h-sm:24px;--r:7px;--fg:var(--text);--border:var(--line-strong);--accent-fg:var(--on-accent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--accent:#2dd4bf;--accent-hover:#5eead4;--accent-soft:#11332f;--accent-ring:#2dd4bf40;--on-accent:#0b1716;--text:#e5e7eb;--muted:#9ca3af;--faint:#6b7280;--line:#2e3138;--line-strong:#41454e;--line-faint:#24272d;--bg:#17181b;--bg-soft:#1e2024;--surface:#212328;--hover:#2a2d33;--active:#32363d;--nav-bg:#1c1e22;--nav-hover:#2a2d33;--topbar-bg:#17181bf0;--overlay:#0000008c;--danger:#f87171;--danger-soft:#3a1d1f;--danger-line:#7f2d2d;--shadow-pop:0 12px 36px #00000080;--grid-line:#77767e;--seg-on:#3a3e46}}*{box-sizing:border-box}[hidden]{display:none!important}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic,Segoe UI,sans-serif;font-size:13px;line-height:1.6}h1{margin:0;font-size:16px;font-weight:700}.spacer{flex:1}.muted{color:var(--muted)}button,.file-button{font:inherit;height:var(--h);cursor:pointer;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);white-space:nowrap;vertical-align:middle;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;text-decoration:none;transition:background .12s,border-color .12s,color .12s;display:inline-flex;box-shadow:0 1px 1px #1018280a}button:hover,.file-button:hover{background:var(--bg-soft)}button:active{background:var(--active)}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:disabled{color:var(--faint);background:var(--bg-soft);cursor:default}button>svg{pointer-events:none;flex:none;width:16px;height:16px}button.sm{height:var(--h-sm);gap:4px;padding:0 8px;font-size:12px}button.sm>svg{width:14px;height:14px}button.icon{width:var(--h);color:var(--muted);padding:0}button.icon.sm{width:var(--h-sm)}button.ghost{box-shadow:none;color:var(--muted);background:0 0;border-color:#0000}button.ghost:hover{background:var(--hover);color:var(--text)}button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);padding:0 14px;font-weight:600}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.primary:disabled{opacity:.45}button.danger{color:var(--danger)}button.danger:hover{background:var(--danger-soft);border-color:var(--danger-line)}.file-button input{opacity:0;width:1px;height:1px;position:absolute}.file-button:focus-within{outline:2px solid var(--accent)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);font-size:13px}input:not([type=checkbox]):not([type=radio]),select{height:var(--h);vertical-align:middle;padding:0 8px}textarea{padding:6px 8px;line-height:1.6}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}input::placeholder,textarea::placeholder{color:var(--faint)}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input[type=range]{accent-color:var(--accent);box-shadow:none;background:0 0;border:none;padding:0}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.switch input{opacity:0;pointer-events:none;position:absolute}.switch span{background:var(--line-strong);border-radius:9px;flex:none;width:30px;height:18px;transition:background .15s;position:relative}.switch span:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:after{transform:translate(12px)}.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.chip{height:22px;box-shadow:none;background:var(--bg-soft);color:var(--muted);white-space:nowrap;border:none;border-radius:11px;align-items:center;gap:2px;padding:0 10px;font-size:11.5px;font-weight:600;display:inline-flex}.chip.accent{background:var(--accent-soft);color:var(--accent)}.chip button{width:18px;height:18px;box-shadow:none;color:inherit;background:0 0;border:none;border-radius:9px;padding:0}.chip button:hover{background:var(--hover)}.chip button>svg{width:12px;height:12px}.chip:has(button){padding-right:2px}.stepper{align-items:center;gap:2px;display:inline-flex}.stepper-label{color:var(--muted);margin-right:4px;font-size:12px}.stepper button{height:var(--h-sm);width:var(--h-sm);padding:0;font-size:12px}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:2.6em}.seg{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);gap:2px;padding:2px;display:inline-flex}.seg button{height:calc(var(--h) - 6px);box-shadow:none;color:var(--muted);background:0 0;border:none;border-radius:5px;padding:0 10px}.seg button:hover{color:var(--text);background:0 0}.seg button.on,.seg button[aria-pressed=true]{background:var(--seg-on);color:var(--text);box-shadow:0 1px 2px #1018281f}.topbar{z-index:3;background:var(--topbar-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);padding:0 20px;position:sticky;top:0}.topbar>header{align-items:center;gap:8px;min-width:0;padding:12px 0 10px;display:flex}.topbar h1{white-space:nowrap;align-items:center;gap:8px;margin-right:10px;font-size:15px;display:inline-flex}.topbar input[type=search]{width:220px}table{border-collapse:collapse;width:100%}th{background:var(--bg-soft);text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--line-faint);height:34px;padding:1px 6px}tbody tr:hover td{background:var(--bg-soft)}.row-ops{text-align:right;width:40px}.row-ops button{opacity:0}tr:hover .row-ops button,.row-ops button:focus-visible{opacity:1}.ctx{z-index:30;background:var(--surface);border:1px solid var(--line);min-width:220px;max-height:calc(100vh - 16px);box-shadow:var(--shadow-pop);border-radius:9px;padding:4px;animation:80ms ease-out fade;position:fixed;overflow-y:auto}.ctx:focus{outline:none}.ctx-item{width:100%;height:28px;box-shadow:none;color:var(--text);background:0 0;border:none;border-radius:5px;justify-content:flex-start;gap:8px;padding:0 8px;font-size:13px;display:flex}.ctx-item:hover:not(:disabled),.ctx-item:focus-visible:not(:disabled){background:var(--accent);color:var(--on-accent);outline:none}.ctx-item:hover:not(:disabled) :is(kbd,.ctx-icon),.ctx-item:focus-visible:not(:disabled) :is(kbd,.ctx-icon){color:var(--on-accent)}.ctx-item:disabled{color:var(--faint);background:0 0}.ctx-item.danger{color:var(--danger)}.ctx-item.danger:hover:not(:disabled),.ctx-item.danger:focus-visible:not(:disabled){background:var(--danger);color:#fff}.ctx-icon{width:16px;color:var(--muted);display:inline-flex}.ctx-icon svg{width:16px;height:16px}.ctx-label{text-align:left;flex:1}.ctx kbd{font:inherit;color:var(--faint);font-size:11.5px}.ctx-sep{background:var(--line);height:1px;margin:4px 6px}.prefs{z-index:8;background:var(--overlay);justify-content:center;align-items:center;animation:.12s ease-out fade;display:flex;position:fixed;inset:0}.prefs-box{background:var(--surface);border-radius:14px;width:min(960px,100vw - 48px);height:min(640px,100vh - 48px);animation:.14s ease-out pop;display:flex;overflow:hidden;box-shadow:0 24px 70px #10182852}.prefs-box:focus{outline:none}.prefs-nav{background:var(--nav-bg);border-right:1px solid var(--line);flex-direction:column;flex:none;gap:2px;width:220px;padding:16px 10px;display:flex}.prefs-nav button{height:32px;box-shadow:none;color:var(--text);background:0 0;border:none;border-radius:7px;justify-content:flex-start;gap:10px;padding:0 10px;font-size:13px}.prefs-nav button>svg{color:var(--muted)}.prefs-nav button:hover{background:var(--nav-hover)}.prefs-nav button[aria-selected=true]{background:var(--accent);color:var(--on-accent)}.prefs-nav button[aria-selected=true]>svg{color:var(--on-accent)}.nav-sep{background:var(--line);height:1px;margin:8px 6px}.prefs-main{flex-direction:column;flex:1;min-width:0;display:flex}.prefs-head{border-bottom:1px solid var(--line);align-items:center;padding:14px 16px 12px 24px;display:flex}.prefs-head h2{flex:1;margin:0;font-size:16px;font-weight:700}.prefs-body{flex:1;padding:12px 24px 28px;overflow:auto}.prefs-body h3{margin:22px 0 2px;font-size:13px}.prefs-body .note{color:var(--muted);margin:4px 0 10px;font-size:12px;line-height:1.7}.prefs-body label{align-items:center;gap:8px;margin:10px 0;display:flex}.card{border:1px solid var(--line);border-radius:12px;max-width:720px;margin:12px 0 16px;padding:14px 18px 16px}.card h3{align-items:center;gap:8px;margin:0 0 2px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.98)}}@media (width<=640px){.prefs-box{flex-direction:column}.prefs-nav{border-right:none;border-bottom:1px solid var(--line);flex-direction:row;width:auto;padding:8px;overflow-x:auto}.prefs-nav .nav-sep{width:1px;height:auto;margin:6px 4px}}.help{font-size:12.5px;line-height:1.8}.help h4{margin:14px 0 4px;font-size:13px}.help dl{grid-template-columns:max-content auto;gap:3px 16px;margin:0;display:grid}.help dt{font-weight:600}.help dd{color:var(--muted);margin:0}.topbar h1 .logo{background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:#fff;border-radius:7px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.topbar h1 .logo svg{width:16px;height:16px}.song-list-page{padding:8px 20px 64px}.song-list-page>.empty{padding:24px 6px}button.ghost[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}table.songs tbody tr{cursor:pointer}table.songs tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}table.songs tbody tr.selected td{background:var(--accent-soft)}table.songs td.title{width:45%;font-weight:600}table.songs .narrow{white-space:nowrap;font-variant-numeric:tabular-nums;width:1%;padding-right:18px}table.songs time{font-size:inherit;color:inherit}table.songs .row-ops{white-space:nowrap;width:1%}.faint{color:var(--faint)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.card h3>svg,.file-button>svg{flex:none;width:16px;height:16px}.card h3>svg{color:var(--muted)}.prefs-body label.file-button{margin:4px 0 0;display:inline-flex}.import-choices{margin-top:14px}.import-choices td{height:38px}.song-bar>header{flex-wrap:wrap;gap:6px 10px;padding:9px 0 8px}.song-bar h1.song-title{text-overflow:ellipsis;min-width:0;max-width:28vw;margin-right:0;display:block;overflow:hidden}.song-artist{white-space:nowrap;text-overflow:ellipsis;max-width:16vw;margin-right:8px;overflow:hidden}.save-status{white-space:nowrap;font-size:12px}.bar-end{align-items:center;gap:2px;display:inline-flex}.bar-end:empty{display:none}a.icon.ghost{width:var(--h);height:var(--h);border-radius:var(--r);color:var(--muted);flex:none;justify-content:center;align-items:center;display:inline-flex}a.icon.ghost:hover{background:var(--hover);color:var(--text)}a.icon.ghost:focus-visible,.seg a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}a.icon>svg{width:16px;height:16px}.seg a{height:calc(var(--h) - 6px);color:var(--muted);white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:0 10px;font-size:12.5px;text-decoration:none;display:inline-flex}.seg a:hover{color:var(--text)}.seg a>svg{width:14px;height:14px}.seg a.on{background:var(--seg-on);color:var(--text);box-shadow:0 1px 2px #1018281f}.song-notices{padding:0 20px}.form{max-width:620px}.form+.form{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.form-row{grid-template-columns:var(--label-w,110px) minmax(0, 1fr);align-items:center;gap:4px 12px;margin:8px 0;display:grid}.form.wide-labels{--label-w:250px}.prefs-body .form-row>label:not(.switch){margin:0;display:block}.form-row>label,.form-row>span{color:var(--muted);font-size:12.5px}.form-row>textarea{resize:vertical}.radios{flex-direction:column;display:flex}.prefs-body .radios label{margin:3px 0}.form-row .inline{align-items:center;gap:10px;display:flex}.form-row .inline input[type=range]{width:220px}.form-row output{font-variant-numeric:tabular-nums;min-width:3em}input.num{width:80px}.prefs-body label.switch{justify-self:start;margin:0;display:inline-flex}[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);grid-column:2;margin:0;font-size:12px}textarea.chordpro-text{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;display:block}.export-result{margin-top:10px}.page{max-width:880px;margin:0 auto;padding:24px 16px 64px}time,.empty{color:var(--muted);font-size:12px}[role=alert]{border:1px solid var(--danger-line);border-radius:var(--r);margin:12px 0;padding:8px 12px}.banner{background:var(--danger-soft)}.song-screen.play{flex-direction:column;height:100vh;display:flex}.play-page{flex-direction:column;flex:1;min-height:0;display:flex}.sheet-scroll{flex:1;padding:16px 24px 50vh;overflow-y:auto}.sheet{max-width:960px;margin:0 auto}.sheet .section{border-left:4px solid var(--accent);margin:1.2em 0 .4em;padding:0 .5em;font-size:1em}.line-group{margin-bottom:.6em}.line{flex-wrap:wrap;align-items:flex-end;row-gap:.3em;min-height:1.6em;display:flex}.segment{flex-direction:column;align-items:flex-start;display:inline-flex}.sheet button.chord-head{height:auto;box-shadow:none;font-size:inherit;line-height:inherit;background:0 0;border:none;border-radius:3px;align-items:center;gap:.3em;padding:0 .3em 0 0;display:inline-flex}.sheet button.chord-head:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}.chord-name{color:var(--accent);font-weight:700}.lyric{white-space:pre-wrap}.lyric:empty:before{content:"​"}.char{cursor:pointer}.char:hover{background:var(--accent-soft)}.tab-anchor{position:relative}.tab-marker{color:var(--accent);font-size:.5em;line-height:1;position:absolute;bottom:-.9em;left:50%;transform:translate(-50%)}.chord-diagram.inline{flex:none;width:3.6em;height:4.3em}.chord-diagram.large{width:72px;height:86px}.tab-view{margin:.9em 0 .4em 1em}.tab-label{color:var(--muted);font-size:.75em}.tab-view pre{margin:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8em;line-height:1.3}.candidate-picker{z-index:10;background:var(--surface);border:1px solid var(--line);width:280px;max-height:60vh;box-shadow:var(--shadow-pop);border-radius:9px;padding:8px;position:fixed;overflow:auto}.candidate-list{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}button.candidate{height:auto;padding:2px}.candidate[aria-pressed=true]{outline:2px solid var(--accent)}.edit-page{max-width:960px;margin:0 auto;padding:16px 16px 64px}.edit-sheet{max-width:none;margin:0}.sheet-empty{color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:64px 0;font-size:13px;display:flex}.sheet-empty p{margin:0}.sheet-empty-actions{gap:8px;display:flex}.edit-block{border-radius:4px;padding:2px 8px 2px 26px;position:relative}.edit-block:hover{background:var(--bg-soft)}.edit-block.selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.edit-block:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.edit-block.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.edit-block.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.edit-block>.row-grip{width:18px;height:22px;box-shadow:none;color:var(--faint);cursor:grab;background:0 0;border:none;border-radius:4px;padding:0;position:absolute;top:4px;left:4px}.edit-block>.row-grip svg{width:14px;height:14px}.edit-block>.row-grip:hover{color:var(--accent);background:var(--accent-soft)}.edit-block>.row-add{z-index:1;border-color:var(--accent);background:var(--accent);width:18px;height:18px;color:var(--on-accent);border-radius:50%;padding:0;position:absolute;bottom:0;left:50%;transform:translate(-50%,50%)}.edit-block>.row-add:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.edit-block>.row-add svg{width:12px;height:12px}.edit-block>:is(.row-grip,.row-add){opacity:0;pointer-events:none;transition:opacity .1s}.edit-block:is(:hover,.selected,:focus-within)>:is(.row-grip,.row-add){opacity:1;pointer-events:auto}.sheet-end{gap:4px;padding:8px 0 0 20px;display:flex}.line-editor{width:100%}.sheet button.slot{opacity:.3;min-width:1.4em;height:auto;box-shadow:none;border-radius:4px;align-self:flex-end;padding:0 4px;font-size:.8em;line-height:1.4}.sheet button.slot:hover,.sheet button.slot:focus-visible,.edit-block.selected .slot{opacity:1}.chord-input-anchor{z-index:10;position:fixed}.chord-input{width:340px;max-height:var(--chord-input-max,80vh);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-pop);border-radius:9px;flex-direction:column;gap:6px;padding:8px;display:flex;overflow:auto}.chord-input-head{align-items:center;gap:4px;display:flex}.chord-input-head input{flex:1;min-width:0}.chord-cands{border-top:1px solid var(--line);flex-wrap:wrap;gap:4px;padding-top:6px;display:flex}button.chord-cand{gap:4px;height:auto;padding:2px 6px 2px 8px;font-weight:600}button.chord-cand>svg.chord-diagram{width:30px;height:36px}button.chord-cand[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.chord-pad{border-top:1px solid var(--line);flex-wrap:wrap;gap:3px;padding-top:6px;display:flex}.chord-pad+.chord-pad{border-top:none;padding-top:0}.chord-pad button.sm{min-width:30px;padding:0 6px}.chord-pad button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.chord-voicings{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:4px;padding-top:6px;display:flex}.chord-voicings .candidate-list{margin-bottom:0}.tab-grid-editor{margin:.9em 0 .4em 1em;font-size:13px}.tab-grid{font-family:ui-monospace,Menlo,Consolas,monospace;display:inline-block}.tab-grid:focus-visible{outline:2px solid var(--accent)}.tab-row{align-items:center;display:flex}.tab-string-no{width:1.2em;color:var(--muted)}.tab-cell{text-align:center;border-bottom:1px solid var(--grid-line);cursor:pointer;width:1.9em;height:1.5em;line-height:1.5em}.tab-cell.bar-start{border-left:1px solid var(--muted)}.tab-cell.cursor{background:color-mix(in srgb, var(--accent) 25%, transparent);outline:1px solid var(--accent)}.tab-grid-controls{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:4px;display:flex}.background-notices{max-width:880px;margin:8px auto 0;padding:0 16px}.background-notice{align-items:center;gap:12px;display:flex}.background-notice>:first-child{flex:1}
