@font-face{font-family:"Guitar Lyric Mono";src:url("/fonts/guitar-lyric-mono.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
#fret-wheel{position:fixed;z-index:100;transform:translateX(-50%);width:284px;height:90px;background:linear-gradient(90deg,#e8e8e8,#fff 28%,#fff 72%,#e8e8e8);border:1px solid #aaa;border-radius:14px;box-shadow:0 10px 32px #0002,inset 0 1px 0 #fff;pointer-events:none;transition:box-shadow .12s,border-color .12s;isolation:isolate}
.fret-cylinder{position:absolute;inset:8px 6px 20px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.fret-tooth{position:absolute;left:50%;top:50%;height:38px;min-width:24px;text-align:center;font:25px/38px ui-monospace,Consolas,monospace;color:#666;will-change:transform}.fret-tooth.active-fret{font-weight:800;color:#000}.fret-tooth.default-fret{color:#000;font-weight:800}.fret-tooth.default-fret:after{content:'';position:absolute;bottom:-1px;left:calc(50% - 2px);width:4px;height:4px;background:#111;border-radius:50%}.fret-center{position:absolute;left:calc(50% - 20px);top:12px;width:40px;height:48px;border:1px solid #888;border-radius:7px;background:#00000004;z-index:-1}.fret-default-pin{position:absolute;bottom:4px;left:calc(50% - 12px);font:11px/16px ui-monospace,monospace;border:1px solid #777;border-radius:9px;min-width:24px;text-align:center;background:#fff}.fret-wheel-tip{position:absolute;bottom:-6px;left:calc(50% - 5px);width:10px;height:10px;background:#fff;border-right:1px solid #aaa;border-bottom:1px solid #aaa;transform:rotate(45deg);z-index:-2}#fret-wheel.cancelled{border-color:#df3636;box-shadow:0 0 0 3px #ee494935,0 0 26px 9px #e4363655,inset 0 0 12px #e4363626}.cancelled .fret-center{border-color:#da3030}.cancelled .fret-tooth.active-fret{color:#b82020}
.score-popover[data-kind=lyric]{width:368px;padding:12px;border-color:#ccc;border-radius:16px;box-shadow:0 10px 40px #0002;overflow:visible}.lyric-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.lyric-action{width:36px;height:36px;min-height:36px!important;border:0;border-radius:50%;padding:9px;background:#f0f0f0;display:grid;place-items:center}.lyric-action svg{width:18px;height:18px}.lyric-action:hover{background:#e0e0e0}#lyric-confirm{color:white;background:#111}#lyric-confirm:hover{background:#333}#lyric-speed{height:38px;display:flex;position:relative;gap:2px;padding:2px;background:#f0f0f0;border-radius:22px;touch-action:none;user-select:none}.lyric-speed-thumb{position:absolute;left:2px;top:2px;width:34px;height:34px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transform:translateX(calc(var(--speed-index,0) * 36px));transition:transform .13s ease}#lyric-speed button{position:relative;z-index:1;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;padding:6px;width:34px;height:34px;min-height:34px!important;color:#666}#lyric-speed button[aria-checked=true]{color:#000}#lyric-speed svg{width:22px;height:22px;pointer-events:none}
.lyric-grid-input{width:100%;min-height:104px;max-height:min(260px,36dvh);overflow:auto;padding:10px 6px;border:1px solid #ccc;border-radius:10px;background:#fff;outline:none;line-height:28px;font:18px/28px ui-monospace,"Microsoft YaHei",Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;caret-color:#111;font-variant-ligatures:none;scrollbar-gutter:stable;--lyric-cell:22px;cursor:text}.lyric-grid-input:focus{border-color:#555;box-shadow:0 0 0 1px #555}.lyric-grid-input[aria-invalid=true]{border-color:#bb2626}.lyric-cell{position:relative;display:inline-block;width:var(--lyric-cell);height:28px;vertical-align:top;text-align:center;white-space:pre}.lyric-space{background:#f3f3f3;border-radius:3px;box-shadow:inset 0 0 0 1px #e0e0e0}.lyric-space:after{content:'·';position:absolute;inset:0;text-align:center;color:#888;pointer-events:none}.lyric-tail{display:inline-block;width:0;height:28px;vertical-align:top}.lyric-preview-layer{pointer-events:none}.lyric-preview-new{font-size:17px;fill:#999}.lyric-preview-old{font-size:13px;fill:#888;text-decoration:line-through}[data-lyric-replaced]{visibility:hidden}
@media(max-width:760px){.score-popover[data-kind=lyric]{width:calc(100vw - 16px);max-width:368px;margin:0 auto;padding:12px}.lyric-action{width:40px;height:40px;min-height:40px!important}.lyric-grid-input{font-size:18px;max-height:30dvh}.lyric-toolbar{gap:6px}#range-tools .range-icon{width:38px;height:40px}#range-tools{max-width:calc(100vw - 12px)}}
@media(prefers-reduced-motion:reduce){.lyric-speed-thumb,#fret-wheel{transition:none}}
@media print{#fret-wheel,.lyric-preview-layer{display:none!important}[data-lyric-replaced]{visibility:visible}}

.lyric-input-wrap{position:relative;border-radius:10px;background:#fff}.lyric-grid-input,#lyric-whitespace{font:18px/28px ui-monospace,"Microsoft YaHei",Consolas,monospace;letter-spacing:0;word-spacing:0;padding:10px 6px;margin:0;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-all;tab-size:1;scrollbar-gutter:stable;box-sizing:border-box;border:1px solid transparent}.lyric-grid-input{position:relative;display:block;resize:vertical;width:100%;height:134px;min-height:104px;max-height:min(300px,36dvh);background:transparent!important;border-color:#ccc!important;overflow:auto;color:#111}#lyric-whitespace{position:absolute;inset:0;overflow:hidden;pointer-events:none;color:transparent}.lyric-space-mark{position:relative;background:#eeeeee;border-radius:2px}.lyric-space-mark:after{content:'·';position:absolute;inset:0;text-align:center;color:#888}.lyric-grid-input:focus{border-color:#555!important}.lyric-grid-input[aria-invalid=true]{border-color:#b22!important}

.lyric-grid-input,#lyric-whitespace{font-family:"Guitar Lyric Mono",ui-monospace,"Microsoft YaHei",monospace;font-size:20px;font-kerning:none;font-feature-settings:"kern" 0,"liga" 0}

/* Selection, boundaries and compact score annotations. */
.danger,#lyric-delete,#picker-remove,#remove-event{color:#b52b2b!important}.danger:hover,#lyric-delete:hover,#picker-remove:hover,#remove-event:hover{background:#fff0f0!important}.danger:focus-visible{outline-color:#b52b2b}
.range-shade[data-level]{fill-opacity:1;stroke:#444;stroke-width:.8;stroke-dasharray:3 3}.range-start-marker,.range-end-marker{pointer-events:none;color:#111}.range-start-marker line,.range-end-marker line{stroke:currentColor;stroke-width:1.5}.range-start-marker path{fill:white;stroke:currentColor;stroke-width:1.5}.range-end-marker circle{fill:#111}
.measure.hovering-measure{background:#e5e5e5}.measure-select-hit{fill:transparent;cursor:pointer;touch-action:pan-y}.bar-number{pointer-events:none}.chord-add-strip{fill:transparent;cursor:copy}.chord-insert-guide{pointer-events:none}.chord-insert-guide line{stroke:#444;stroke-width:1}.chord-insert-guide circle{fill:white;stroke:#111;stroke-width:1.5}.chord-insert-guide path{stroke:#111;stroke-width:1.5;fill:none}.bar-end-guide{pointer-events:none;opacity:.75}.end-hit{fill:transparent;cursor:not-allowed}
.row-divider{height:23px;position:relative;cursor:n-resize;outline-offset:0}.row-divider:before{content:'';position:absolute;top:11px;left:0;right:0;border-top:1px solid #e1e1e1}.row-divider:hover:before,.row-divider:focus-visible:before{border-color:#888}.score-row,.edit-mode .score-row{margin-bottom:0}.score-section{margin:8px 0 10px;font-size:13px;color:#444}.section-add-button{position:absolute;left:0;top:-2px;width:27px;height:27px;display:grid;place-items:center;border:1px solid #999;border-radius:50%;padding:5px;background:white;opacity:0;z-index:3}.row-divider:hover .section-add-button,.row-divider:focus-within .section-add-button{opacity:1}.section-add-button:hover{background:#111;color:white}.section-add-button svg{width:16px;height:16px}.compact-toolbar{display:flex;align-items:center;gap:9px;margin-bottom:12px}.compact-symbol{display:grid;place-items:center;width:30px;height:34px;margin-right:auto;color:#444}.compact-toolbar .range-icon{display:grid;place-items:center;width:34px!important;height:34px!important;border-radius:50%;padding:7px!important;border:0;background:#f1f1f1!important}.compact-toolbar #section-confirm,.compact-toolbar #annotation-confirm{background:#111!important;color:white}.score-popover[data-kind=section]{width:330px;padding:12px;border-color:#bbb;border-radius:14px}.score-popover[data-kind=section] #section-name{margin:0;padding:9px 10px}.score-popover[data-kind=section] .sr-only{margin:0!important}
#section-nav{flex:none;max-height:32vh;overflow:auto;margin:8px 0 12px;border-top:1px solid #ddd;padding-top:10px}.section-nav-heading{display:flex;align-items:center;gap:8px;color:#666;font-size:12px;padding:4px 10px 8px}#section-nav button{display:block;width:100%;text-align:left;border:0;background:transparent;white-space:normal;overflow-wrap:anywhere;font-size:13px;padding:7px 10px}#section-nav button:hover{background:#e9e9e9}#song-list{flex:1;min-height:100px}
.annotation-strip{overflow:visible}.annotation-line{stroke-width:1.2;stroke-dasharray:3 3;opacity:.65;pointer-events:none}.annotation-endpoint{fill:white;stroke-width:1.5;pointer-events:none}.annotation-hit{fill:transparent;stroke:none;cursor:pointer}.annotation-cluster-ring{fill:none;stroke:#777;stroke-width:1;stroke-dasharray:1 2;pointer-events:none}.annotation-point{cursor:pointer}.annotation-highlight{opacity:1;stroke-width:2.5;filter:drop-shadow(0 0 2px currentColor)}.annotation-point:focus-visible{outline:none}.annotation-point:focus-visible .annotation-hit{stroke:#333;stroke-dasharray:2 2;stroke-width:1;fill:#00000008}
#annotation-stack{position:fixed;z-index:95;display:flex;flex-direction:column;align-items:center;background:#fff;border:1px solid #ddd;border-radius:18px;box-shadow:0 4px 15px #0002;padding:3px;max-height:40vh;overflow:auto;width:33px}.annotation-stack-dot{display:grid;place-items:center;flex:none;width:25px;height:25px;padding:4px;border:0;border-radius:50%;background:transparent}.annotation-stack-dot span,.annotation-color-dot{display:inline-block;width:9px;height:9px;border:2px solid var(--note-color);border-radius:50%;background:white}.annotation-stack-dot:hover{background:#eee}.annotation-stack-dot:hover span{box-shadow:0 0 0 3px color-mix(in srgb,var(--note-color),transparent 80%)}
.score-popover[data-kind^=annotation]{width:310px;border-radius:13px;border-color:#bbb;padding:12px;overflow:visible;right:auto!important}.annotation-view-head{display:flex;align-items:center;gap:4px;margin-bottom:7px}.annotation-view-head>span:nth-child(2){flex:1}.annotation-view-head button{display:grid;place-items:center;border:0;padding:4px;width:28px;height:28px;background:transparent}.annotation-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:32vh;overflow:auto;padding:0 2px 4px;line-height:1.7}.annotation-tail{position:absolute;left:calc(var(--tail-x) - 5px);width:10px;height:10px;background:white;border:1px solid #bbb;transform:rotate(45deg)}[data-side=below] .annotation-tail{top:-6px;border-right:0;border-bottom:0}[data-side=above] .annotation-tail{bottom:-6px;border-left:0;border-top:0}#annotation-input{width:100%;display:block;resize:vertical;min-height:72px;max-height:28vh;line-height:1.6;margin-bottom:10px}.annotation-colors{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.annotation-colors button{width:19px;height:19px;min-height:0!important;padding:0;border:3px solid white;background:var(--note-color);border-radius:50%;outline:1px solid transparent}.annotation-colors button[aria-pressed=true]{outline-color:var(--note-color)}#annotation-color{width:24px;height:24px;padding:0;border:0;margin:0;cursor:pointer;background:none}.lyric-preview-layer~.annotation-strip{opacity:.4}
@media(pointer:coarse){.section-add-button{opacity:1}.measure-select-hit{width:30px}.row-divider{height:28px}.row-divider:before{top:14px}.section-add-button{top:1px}}
@media(max-width:760px){.score-popover[data-kind^=annotation]{max-width:calc(100vw - 20px);margin:0;max-height:calc(var(--visible-height,100dvh) - 28px)}#section-nav{max-height:30vh}.annotation-view-head button{min-height:28px}.score-popover[data-kind=section]{max-width:calc(100vw - 16px)}.compact-toolbar button{min-height:34px!important}}
@media print{.row-divider,.measure-select-hit,.range-start-marker,.range-end-marker,.chord-insert-guide,.end-hit,#annotation-stack{display:none!important}.row-divider:before{border:0}.annotation-hit{display:none}}
.annotation-highlight{filter:none;stroke-width:2;opacity:1}
.annotation-line-hit{fill:transparent;cursor:pointer;pointer-events:all}.annotation-point:focus,.annotation-line-target:focus{outline:none}.annotation-line-target:focus-visible .annotation-line-hit{fill:#00000008;stroke:#aaa;stroke-width:.7;stroke-dasharray:2 2}
.lyric-text{cursor:default}
.tab-hit,.time-hit{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='32' viewBox='0 0 24 32'%3E%3Cpath d='M12 5v22M8 5h8M8 27h8' fill='none' stroke='white' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M12 5v22M8 5h8M8 27h8' fill='none' stroke='%23222' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") 12 16,text}
.string-hit,.edit-mode .string-hit{cursor:default}
.edit-mode .tab-svg:has(.pointer-string[visibility="visible"]) .string-hit{cursor:none}
.pointer-string{fill:none;stroke:#111;stroke-width:1.6;pointer-events:none;paint-order:stroke;filter:drop-shadow(0 0 1px white)}
.pointer-string.hold-ready{stroke-width:3;stroke-dasharray:2 2}
.pointer-string.drag-ready{stroke-dasharray:none}
@media print{.pointer-string{display:none!important}}
button.bar-boundary-insert{position:absolute;z-index:4;width:18px;height:80px;min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;display:grid;place-items:center;place-content:center;touch-action:manipulation;color:#111;cursor:pointer}
button.bar-boundary-insert.before{left:-9px}button.bar-boundary-insert.after{right:-9px}
button.bar-boundary-insert:not(:disabled):hover,button.bar-boundary-insert:not(:disabled):active{background:transparent;box-shadow:none;transform:none}
button.bar-boundary-insert span{display:grid;place-items:center;width:22px;height:22px;border:1px solid #d5d5d5;border-radius:50%;background:#fff;box-shadow:0 2px 6px #00000010;font-size:19px;line-height:1;opacity:0;transform:scale(.8);transition:opacity .12s,transform .12s,border-color .12s}
button.bar-boundary-insert:hover span,button.bar-boundary-insert:focus-visible span{opacity:1;transform:scale(1)}
button.bar-boundary-insert:active span{transform:scale(.9);background:#eee;border-color:#777}
@media(pointer:coarse){button.bar-boundary-insert span{opacity:.55;transform:scale(.9)}}
@media print{button.bar-boundary-insert{display:none!important}}
