: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}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--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}.tag-input{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.tag-input>input{flex:140px;min-width:0}.tag-suggest{flex-wrap:wrap;grid-column:2;gap:4px;display:flex}button.chip{cursor:pointer}button.chip:hover{background:var(--hover)}button.chip[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.tag-filter{flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 10px;display:flex}.tag-filter>.label{color:var(--muted);margin-right:4px;font-size:12px}.songs .tags{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}.songs .tags .chip{height:18px;padding:0 7px;font-size:10.5px}.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,100dvh - 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;min-height: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{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;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{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.prefs-box{width:calc(100vw - 16px);height:calc(100vh - 24px);height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));flex-direction:column}.prefs-head{padding:10px 8px 8px 16px}.prefs-body{padding:8px 16px 24px}.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}.help p{margin:0 0 6px}.help ol{margin:0;padding-left:20px}.help code{background:var(--hover);overflow-wrap:anywhere;border-radius:4px;padding:1px 5px;font-size:12px}.passkey-list{max-width:560px;margin:8px 0 12px;padding:0;list-style:none}.passkey-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.passkey-list li>div{flex-direction:column;font-size:13px;display:flex}.passkey-list .note{margin:2px 0 0}.copy-url{align-items:center;gap:4px;max-width:100%;display:inline-flex}.copy-url button>svg{width:14px;height:14px}.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}.form-row>.seg{justify-self:start}.form-row>.account-email{color:var(--text);overflow-wrap:anywhere}[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:100dvh;display:flex}.play-page{flex-direction:column;flex:1;min-height:0;display:flex}.sheet-scroll{touch-action:manipulation;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;color:var(--faint);cursor:grab;background:0 0;border-radius:4px;justify-content:center;align-items:center;display:inline-flex;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:26px;transform:translateY(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}.tab-grid-keys{flex-wrap:wrap;gap:0 1em;display:inline-flex}.tab-grid-keys>span{white-space:nowrap}.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}.bar-break,.title-artist,.touch-only{display:none}@media (width<=640px){.topbar{padding:0 12px}.topbar>header{flex-wrap:wrap;row-gap:6px}.topbar h1{margin-right:0}.topbar input[type=search]{order:1;width:100%}.song-list-page{padding:4px 12px 64px}table.songs .wide-only{display:none}table.songs td.title{width:auto;padding-top:4px;padding-bottom:4px}.title-artist{color:var(--muted);font-size:12px;font-weight:400;display:block}.song-bar>header{gap:6px 4px}.song-bar h1.song-title{flex:1;max-width:none}.song-bar .song-artist,.song-bar .spacer{display:none}.song-bar .bar-break{flex-basis:100%;order:1;height:0;display:block}.song-bar :is(.stepper,.chip,.save-status){order:1}.song-bar .stepper+.stepper{margin-left:4px}.song-bar .stepper button{width:26px;height:26px}.song-bar .stepper output{min-width:1.9em}.song-bar .speed{margin-left:auto}.song-screen.edit .song-bar .speed{display:none}.seg a{padding:0 9px}.seg-text{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sheet-scroll{padding:12px 12px 50vh}.song-notices{padding:0 12px}.edit-page{padding:8px 4px 70vh}.edit-block{scroll-margin-top:96px}.chord-input-anchor{bottom:0;right:0;top:auto!important;left:0!important}.chord-input{width:100%;max-height:55vh;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-bottom:none;border-radius:12px 12px 0 0}.candidate-picker{width:calc(100vw - 16px);left:8px!important}}@media (hover:none){input,select,textarea{font-size:16px}html{touch-action:manipulation}.row-ops button{opacity:1}.touch-only{display:inline-flex}.chord-input-head button.sm{height:32px}.chord-pad button.sm{min-width:38px;height:32px;font-size:13px}.stepper button{width:28px;height:28px}}.coach-panel{z-index:30;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);flex-direction:column;gap:8px;width:min(420px,100vw - 24px);max-height:min(70vh,640px);padding:10px;display:flex;position:fixed;bottom:12px;right:12px;box-shadow:0 8px 24px #0000002e}.coach-panel>header{justify-content:space-between;align-items:center;display:flex}.coach-panel h2{margin:0;font-size:14px}.coach-log{flex-direction:column;flex:1;gap:6px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.coach-log li{white-space:pre-wrap;font-size:13px;line-height:1.6}.coach-log li.coach-reply{white-space:normal}.coach-md>:first-child{margin-top:0}.coach-md>:last-child{margin-bottom:0}.coach-md p,.coach-md ul,.coach-md ol,.coach-md pre,.coach-md blockquote,.coach-md table{margin:0 0 8px}.coach-md h1,.coach-md h2,.coach-md h3,.coach-md h4,.coach-md h5,.coach-md h6{margin:12px 0 4px;font-size:13.5px;font-weight:700;line-height:1.4}.coach-md h1,.coach-md h2{font-size:14px}.coach-md ul,.coach-md ol{padding-left:1.4em}.coach-md ul{list-style:outside}.coach-md ol{list-style:decimal}.coach-md ul ul{list-style:circle}.coach-md li{white-space:normal}.coach-md li+li{margin-top:2px}.coach-md strong{font-weight:700}.coach-md code{background:var(--bg-soft);border:1px solid var(--line);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.coach-md pre{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);padding:8px;overflow-x:auto}.coach-md pre code{white-space:pre;background:0 0;border:0;padding:0}.coach-md blockquote{border-left:3px solid var(--line-strong);color:var(--muted);padding-left:10px}.coach-md a{color:var(--accent)}.coach-md hr{border:0;border-top:1px solid var(--line);margin:10px 0}.coach-md table{border-collapse:collapse;display:block;overflow-x:auto}.coach-md th,.coach-md td{border:1px solid var(--line);text-align:left;padding:2px 8px;line-height:1.5}.coach-md th{background:var(--bg-soft)}.coach-user{background:var(--bg-soft);border-radius:var(--r);align-self:flex-end;max-width:85%;padding:6px 10px}.coach-form{align-items:flex-end;gap:6px;display:flex}.coach-form textarea{resize:vertical;flex:1;padding:6px 8px}@media (width<=640px){.coach-panel{border-radius:var(--r) var(--r) 0 0;width:100vw;max-height:60vh;bottom:0;right:0}}.login{background:var(--bg-soft);place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);flex-direction:column;gap:12px;width:min(360px,100%);padding:24px;display:flex}.login-card h1{margin:0;font-size:18px}.login-card p{margin:0;font-size:13px;line-height:1.6}.login-card label{flex-direction:column;gap:4px;font-size:13px;display:flex}.login-card input{height:36px;padding:0 10px;font-size:15px}.login-card input[inputmode=numeric]{letter-spacing:.2em}.login-card button.primary{height:36px}.login-links{flex-wrap:wrap;justify-content:space-between;gap:4px 8px;display:flex}.login-error{color:var(--danger)}.login-or,.login-switch{text-align:center}.login-card button.link{height:auto;box-shadow:none;color:var(--accent);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0 2px;text-decoration:underline;display:inline}.login-card button.login-passkey{height:40px;font-size:13.5px}.login-card button.login-passkey>svg{width:18px;height:18px}.login-status{text-align:center}.login-card .login-links button{padding:0 6px}.code-input{grid-template-columns:repeat(6,1fr);gap:6px;display:grid;position:relative}.code-box{font-variant-numeric:tabular-nums;height:48px;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);place-items:center;font-size:22px;font-weight:600;transition:border-color .12s;display:grid}.code-box.is-current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.code-input.is-busy .code-box{color:var(--muted);background:var(--bg-soft)}.code-input input,.login-card .code-input input{opacity:.01;color:#0000;caret-color:#0000;letter-spacing:normal;background:0 0;border:none;width:100%;height:100%;padding:0;font-size:16px;position:absolute;inset:0}.form .code-input{max-width:320px;margin:4px 0}.passkey-offer{text-align:center;align-items:stretch}.passkey-offer-mark{width:56px;height:56px;color:var(--accent);background:var(--accent-soft);border-radius:16px;place-items:center;margin:4px auto;display:grid}.passkey-offer-mark>svg{width:30px;height:30px}.reauth{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:6px;max-width:560px;margin:4px 0 8px;padding:10px 12px;display:flex}.reauth .note{margin:0}.reauth-actions{flex-wrap:wrap;gap:6px;display:flex}.chord-shape{border-top:1px solid var(--line);flex-wrap:wrap;align-items:flex-start;gap:10px;padding-top:6px;display:flex}.chord-shape-side{flex-direction:column;flex:1;gap:6px;min-width:110px;display:flex}.chord-shape-side .chord-pad{border-top:none;padding-top:0}.chord-shape-actions{flex-wrap:wrap;gap:6px;display:flex}.fretboard{align-items:flex-start;gap:4px;display:flex}.fretboard-pos{color:var(--muted);flex-direction:column;align-items:center;gap:2px;padding-top:26px;font-size:12px;display:flex}.fretboard-grid{grid-template-columns:repeat(6,28px);grid-auto-rows:30px;display:grid}.fretboard-grid button{min-width:0;height:auto;box-shadow:none;color:var(--text);background:0 0;border:none;border-radius:0;padding:0}.fretboard-open{align-self:end;font-size:15px;height:24px!important}.fretboard-cell{position:relative;border-top:1px solid var(--grid-line)!important}.fretboard-cell.nut{border-top-width:3px!important}.fretboard-cell:before{content:"";border-left:1px solid var(--grid-line);position:absolute;top:0;bottom:0;left:50%}.fretboard-cell:hover{background:var(--hover)!important}.fretboard-cell[aria-pressed=true]:after{content:"";background:var(--accent);border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;top:50%;left:50%}.fretboard-grid>.fretboard-cell:nth-last-child(-n+6){border-bottom:1px solid var(--grid-line)!important}.timed-toast{z-index:9;background:var(--surface);border:1px solid var(--line);width:min(480px,100vw - 32px);box-shadow:var(--shadow-pop);border-radius:9px;align-items:center;gap:8px;padding:10px 12px 12px;display:flex;position:fixed;bottom:16px;left:50%;overflow:hidden;transform:translate(-50%)}.timed-toast p{flex:1;margin:0}.timed-toast-bar{background:var(--accent);transform-origin:0;width:100%;height:3px;animation:linear forwards toast-timer;position:absolute;bottom:0;left:0}.timed-toast.paused .timed-toast-bar{animation-play-state:paused}@keyframes toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.drop-overlay{z-index:50;background:color-mix(in srgb, var(--bg) 70%, transparent);pointer-events:none;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.drop-overlay>div{text-align:center;border:2px dashed var(--accent);background:var(--accent-soft);width:min(420px,100%);color:var(--text);border-radius:12px;padding:32px 20px}.drop-overlay svg{width:28px;height:28px;color:var(--accent)}.drop-overlay p{margin:8px 0 0;font-weight:600}.drop-overlay p.note{color:var(--muted);margin-top:4px;font-size:12px;font-weight:400}.import-done{background:var(--accent-soft);border-radius:8px;align-items:center;gap:8px;margin:8px 0;padding:6px 10px;font-size:12.5px;display:flex}.import-done button{margin-left:auto}.skeleton{opacity:0;animation:.25s ease-out .2s forwards sk-in}@keyframes sk-in{to{opacity:1}}.sk-bar,.sk-box{background:var(--line-faint);background-image:linear-gradient(90deg, transparent 0, color-mix(in srgb, var(--bg) 70%, transparent) 50%, transparent 100%);background-repeat:no-repeat;background-size:200% 100%;border-radius:5px;flex:none;height:10px;animation:1.4s ease-in-out infinite sk-shine;display:block}:root[data-theme=dark] .sk-bar,:root[data-theme=dark] .sk-box{background-color:var(--hover);background-image:linear-gradient(90deg,#0000 0,#ffffff0d 50%,#0000 100%)}@keyframes sk-shine{0%{background-position:150% 0}to{background-position:-50% 0}}@media (prefers-reduced-motion:reduce){.sk-bar,.sk-box{animation:none}}.sk-list .sk-head,.sk-list .sk-row{align-items:center;gap:24px;padding:0 6px;display:flex}.sk-list .sk-head{background:var(--bg-soft);border-bottom:1px solid var(--line);height:31px}.sk-list .sk-head .sk-bar{height:8px}.sk-list .sk-head .sk-bar:first-child{margin-right:auto}.sk-list .sk-row{border-bottom:1px solid var(--line-faint);height:35px}.sk-list .sk-title{flex:0 0 45%}.sk-list .sk-artist{flex:1}.sk-list .sk-row>.sk-bar:last-child{margin-right:40px}.sk-list .sk-row:nth-child(n+6){opacity:.7}.sk-list .sk-row:nth-child(n+8){opacity:.4}.sk-song .topbar>header{gap:10px;padding:9px 0 8px}.sk-song .sk-icon{width:var(--h);height:var(--h);border-radius:var(--r)}.sk-song .sk-seg{width:120px;height:var(--h);border-radius:var(--r)}.sk-song .sk-lg{height:14px}.sk-sheet{max-width:960px;margin:0 auto;padding:20px 24px}.sk-section{margin-bottom:26px}.sk-section .sk-label{border-left:4px solid var(--accent);border-radius:2px 5px 5px 2px;height:12px;margin-bottom:14px}.sk-line{margin-bottom:16px}.sk-chords{gap:18%;max-width:70%;margin-bottom:7px;display:flex}.sk-chords .sk-accent,:root[data-theme=dark] .sk-chords .sk-accent{background-color:color-mix(in srgb, var(--accent) 22%, transparent);height:10px}.sk-line>.sk-bar{height:12px}@media (width<=640px){.sk-list .wide-only{display:none}.sk-list .sk-title{flex:1}.sk-list .sk-row>.sk-bar:last-child{margin-right:24px}.sk-sheet{padding:14px 12px}}
