:root{--font-ui:-apple-system, "SF Pro Text", system-ui, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:20px;--text-xl:24px;--text-2xl:32px;--leading-xs:16px;--leading-sm:20px;--leading-md:24px;--leading-lg:28px;--leading-xl:32px;--leading-2xl:40px;--chart-size:26px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius:10px;--radius-sm:6px;--control-h:40px;--sidebar-w:240px;--content-max:1100px;--ease-out:cubic-bezier(.2, .8, .2, 1);--bg:#fbfbfa;--bg-2:#f2f2f0;--bg-3:#e8e8e5;--ink:#1a1a1a;--ink-2:#4a4a48;--ink-3:#8a8a86;--chord:#0a3d91;--accent:#2f6fe4;--accent-ink:#fff;--line:#e0e0dc;--warn:#b25e00;--danger:#b3261e;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141416;--bg-2:#1d1d20;--bg-3:#27272b;--ink:#ececea;--ink-2:#b4b4b0;--ink-3:#7e7e7a;--chord:#9cc4ff;--accent:#5b9bff;--accent-ink:#0b1220;--line:#2e2e33;--warn:#ffb454;--danger:#ff7b72;color-scheme:dark}}:root[data-theme=dark]{--bg:#141416;--bg-2:#1d1d20;--bg-3:#27272b;--ink:#ececea;--ink-2:#b4b4b0;--ink-3:#7e7e7a;--chord:#9cc4ff;--accent:#5b9bff;--accent-ink:#0b1220;--line:#2e2e33;--warn:#ffb454;--danger:#ff7b72;color-scheme:dark}:root[data-theme=stage]{--bg:#000;--bg-2:#0a0a0a;--bg-3:#141414;--ink:#fff6e5;--ink-2:#e0d6c2;--ink-3:#b3a88f;--chord:#ffd166;--accent:#ffb000;--accent-ink:#1a1200;--line:#262626;--warn:#ffb454;--danger:#ff7b72;color-scheme:dark}@media (pointer:coarse){:root{--control-h:44px}}.chart{--lyric-lh:calc(var(--chart-size) * 1.35);--chord-size:calc(var(--chart-size) * .85);--pair-gap:calc(var(--chart-size) * .55);--section-gap:calc(var(--chart-size) * 1.4);font-family:var(--font-ui);font-size:var(--chart-size);line-height:var(--lyric-lh);color:var(--ink);-webkit-font-smoothing:antialiased}.chart__header{margin-bottom:var(--section-gap)}.chart__title{font-size:calc(var(--chart-size) * 1.25);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.2}.chart__meta{margin-top:calc(var(--chart-size) * .3);font-size:calc(var(--chart-size) * .65);color:var(--ink-3);flex-wrap:wrap;gap:0 1em;display:flex}.chart__meta strong{color:var(--ink-2);font-weight:600}.section{margin-bottom:var(--section-gap)}.section--whole{break-inside:avoid}.section__label{break-after:avoid}.line{break-inside:avoid}.section__label{font-size:calc(var(--chart-size) * .7);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 calc(var(--chart-size) * .4);font-weight:600;line-height:1.3}.section__label .repeat{letter-spacing:0;text-transform:none;margin-left:.6em;font-weight:500}.line{margin-bottom:var(--pair-gap);flex-wrap:wrap;align-items:flex-end;display:flex}.line--empty{height:var(--pair-gap);margin:0}.seg{white-space:pre-wrap;flex-direction:column;align-items:flex-start;display:inline-flex}.seg__chord{font-size:var(--chord-size);color:var(--chord);font-variant-numeric:tabular-nums;min-height:calc(var(--chord-size) * 1.2);margin-bottom:calc(var(--chart-size) * .15);padding-right:.35em;font-weight:600;line-height:1.2}.line--nochords .seg__chord{display:none}.seg__annotation{font-size:var(--chord-size);color:var(--ink-3);margin-bottom:calc(var(--chart-size) * .15);padding-right:.35em;font-style:italic;line-height:1.2}.seg__lyric{min-height:var(--lyric-lh)}.line__repeat{color:var(--ink-3);font-size:calc(var(--chart-size) * .7);line-height:var(--lyric-lh);align-self:flex-end;margin-left:.6em}.chart__comment{color:var(--ink-2);font-style:italic;font-size:calc(var(--chart-size) * .8);margin:0 0 var(--pair-gap)}.chart__reference{color:var(--ink-3);font-size:calc(var(--chart-size) * .7);letter-spacing:.08em;text-transform:uppercase;margin:0 0 var(--pair-gap);font-weight:600}.chart__tab{font-family:var(--font-mono);font-size:calc(var(--chart-size) * .7);color:var(--ink-2);margin:0 0 var(--pair-gap);white-space:pre;line-height:1.3;overflow-x:auto}.chart--columns-2 .chart__body{column-count:2;column-gap:calc(var(--chart-size) * 2)}.chart--compact{--chart-size:16px}@media (width<=719px){.chart--columns-2 .chart__body{column-count:1}}.seg__ext{vertical-align:baseline;margin-left:.04em;font-size:.62em;line-height:0;position:relative;top:-.55em}*,:before,:after{box-sizing:border-box}html{height:100%}body{background:var(--bg);min-height:100%;color:var(--ink);font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--leading-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:var(--accent);text-decoration:none}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);padding:var(--space-4);gap:var(--space-5);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;font-weight:700;font-size:var(--text-lg);padding:0 var(--space-2)}.nav{gap:var(--space-1);flex-direction:column;display:flex}.nav__link{white-space:nowrap;align-items:center;gap:var(--space-3);height:var(--control-h);padding:0 var(--space-3);border-radius:var(--radius);color:var(--ink-2);font-weight:500;display:flex}.nav__link:hover{background:var(--bg-2)}.nav__link--active{background:var(--bg-3);color:var(--ink);box-shadow:inset 3px 0 0 var(--accent)}.sidebar__foot{color:var(--ink-3);font-size:var(--text-sm);margin-top:auto}.main{min-width:0}.page{max-width:var(--content-max);padding:var(--space-6) var(--space-6) var(--space-8)}.page--wide{max-width:none}.page__head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.page__title{font-size:var(--text-xl);line-height:var(--leading-xl);letter-spacing:-.015em;font-weight:700}.page__sub{color:var(--ink-3);margin-top:var(--space-1)}.tabbar{display:none}@media (width<=719px){.shell{grid-template-columns:1fr}.sidebar{display:none}.page{padding:var(--space-4) var(--space-4) calc(var(--space-8) + 56px)}.tabbar{height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--line);z-index:20;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;inset:auto 0 0}.tabbar__link{font-size:var(--text-xs);color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.tabbar__link--active{color:var(--accent)}}.btn{justify-content:center;align-items:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-4);border-radius:var(--radius);background:var(--bg-2);color:var(--ink);cursor:pointer;white-space:nowrap;transition:background .12s var(--ease-out);border:0;font-weight:500;display:inline-flex}.btn:hover{background:var(--bg-3)}.btn:disabled{opacity:.5;cursor:default}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover{background:var(--accent);filter:brightness(1.06)}.btn--quiet{color:var(--accent);padding:0 var(--space-2);background:0 0}.btn--quiet:hover{background:var(--bg-2)}.btn--danger{color:var(--danger)}.btn--sm{height:32px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn--icon{width:var(--control-h);padding:0}.input,.select,.textarea{height:var(--control-h);padding:0 var(--space-3);border-radius:var(--radius);background:var(--bg-2);border:0;width:100%;min-width:0}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--accent);outline-offset:0}.select{appearance:none;padding-right:var(--space-6);background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px}.textarea{height:auto;padding:var(--space-3);line-height:var(--leading-md);resize:vertical}.textarea--code{font-family:var(--font-mono);font-size:var(--text-sm);tab-size:4;white-space:pre;line-height:1.55;overflow:auto}.field{gap:var(--space-1);flex-direction:column;display:flex}.field__label{font-size:var(--text-sm);color:var(--ink-3)}.seg-control{background:var(--bg-2);border-radius:var(--radius);gap:2px;padding:3px;display:inline-flex}.seg-control__opt{height:calc(var(--control-h) - 6px);padding:0 var(--space-3);border-radius:calc(var(--radius) - 3px);color:var(--ink-2);cursor:pointer;background:0 0;border:0;font-weight:500}.seg-control__opt--on{background:var(--bg);color:var(--ink);box-shadow:0 1px 2px #0000001f}.toolbar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.toolbar__spacer{flex:1}.keypicker{grid-template-columns:repeat(6,1fr);gap:4px;display:inline-grid}.keypicker__key{border-radius:var(--radius-sm);background:var(--bg-2);min-width:44px;height:36px;color:var(--ink);font-variant-numeric:tabular-nums;cursor:pointer;border:0;font-weight:600}.keypicker__key--on{background:var(--accent);color:var(--accent-ink)}.list{gap:var(--space-1);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-3);border-radius:var(--radius);color:inherit;min-height:56px;display:flex}.row:hover{background:var(--bg-2)}.row--active{background:var(--bg-3);box-shadow:inset 3px 0 0 var(--accent)}.row__main{flex:1;min-width:0}.row__title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.row__sub{color:var(--ink-3);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row__key{color:var(--chord);font-variant-numeric:tabular-nums;text-align:right;min-width:2.5em;font-weight:600}.row__handle{color:var(--ink-3);cursor:grab;touch-action:none;padding:var(--space-2);margin:calc(var(--space-2) * -1)}.row--header{min-height:40px;padding-top:var(--space-2);padding-bottom:var(--space-2)}.row--header .row__title{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{height:30px;padding:0 var(--space-3);background:var(--bg-2);color:var(--ink-2);font-size:var(--text-sm);cursor:pointer;border:0;border-radius:999px;align-items:center;display:inline-flex}.chip--on{background:var(--accent);color:var(--accent-ink)}.chip--static{cursor:default;height:22px;font-size:var(--text-xs)}.empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--ink-3)}.empty__title{color:var(--ink);margin-bottom:var(--space-2);font-weight:600}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--bg-2);color:var(--ink-2)}.notice--warn{color:var(--warn)}.notice--danger{color:var(--danger)}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{text-align:left;color:var(--ink-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);font-weight:500}.table td{padding:var(--space-2) var(--space-3);vertical-align:top}.table tr:hover td{background:var(--bg-2)}.table__num{text-align:right;font-variant-numeric:tabular-nums}.warn-dot:before{content:"";background:var(--warn);width:7px;height:7px;margin-right:var(--space-2);vertical-align:middle;border-radius:50%;display:inline-block}.progress{background:var(--bg-3);border-radius:3px;height:6px;overflow:hidden}.progress__bar{background:var(--accent);height:100%;transition:width .24s var(--ease-out)}.meta-line{color:var(--ink-3);font-size:var(--text-sm)}.center{min-height:100vh;padding:var(--space-5);place-items:center;display:grid}.card{gap:var(--space-4);flex-direction:column;width:min(420px,100%);display:flex}.card__title{font-size:var(--text-2xl);line-height:var(--leading-2xl);letter-spacing:-.02em;font-weight:700}.editor{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:60vh;display:grid}.editor__pane{min-width:0}.editor__source{height:calc(100vh - 240px);min-height:60vh}.editor__preview{padding:var(--space-4);border-radius:var(--radius);background:var(--bg-2);height:calc(100vh - 240px);overflow:auto}.editor__tabs{display:none}@media (width<=899px){.editor{grid-template-columns:1fr}.editor__tabs{display:inline-flex}.editor__pane--hidden{display:none}.editor__source,.editor__preview{height:auto;min-height:50vh}}.builder{gap:var(--space-6);grid-template-columns:minmax(0,3fr) minmax(280px,2fr);display:grid}.builder__side{top:var(--space-5);max-height:calc(100vh - var(--space-8));align-self:start;position:sticky;overflow:auto}@media (width<=899px){.builder{grid-template-columns:1fr}.builder__side{max-height:none;position:static}}.row--dragging{opacity:.6}.perf{background:var(--bg);color:var(--ink);z-index:50;position:fixed;inset:0;overflow:hidden}.perf__scroll{overscroll-behavior:contain;padding:calc(var(--space-8) + var(--space-3)) var(--space-5) 40vh;scroll-behavior:smooth;position:absolute;inset:0;overflow-y:auto}@media (prefers-reduced-motion:reduce){.perf__scroll{scroll-behavior:auto}}.perf__controls{padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line);align-items:center;gap:var(--space-3);transition:transform .24s var(--ease-out), opacity .24s var(--ease-out);flex-wrap:wrap;display:flex;position:absolute;bottom:0;left:0;right:0}.perf__controls--hidden{opacity:0;pointer-events:none;transform:translateY(100%)}.perf__top{padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-3);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:2;transition:transform .24s var(--ease-out), opacity .24s var(--ease-out);display:flex;position:absolute;top:0;left:0;right:0}@media (width<=719px){.perf__top{flex-wrap:wrap}.perf__top .inline{flex-basis:100%}.perf__scroll{padding-top:calc(var(--space-8) * 2 + var(--space-4))}}.perf__top--hidden{opacity:0;pointer-events:none;transform:translateY(-100%)}.perf__pos{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:var(--text-sm)}.perf__banner{top:var(--space-4);z-index:3;background:var(--accent);color:var(--accent-ink);padding:var(--space-3) var(--space-4);border-radius:var(--radius);align-items:center;gap:var(--space-4);animation:banner-in .24s var(--ease-out);z-index:2;display:flex;position:absolute;left:50%;transform:translate(-50%)}@keyframes banner-in{0%{transform:translate(-50%,-140%)}to{transform:translate(-50%)}}.perf .chart{max-width:1400px;margin:0 auto}@media (width<=899px){.perf .chart--columns-2 .chart__body{column-count:1}}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);padding:var(--space-7) var(--space-4);text-align:center;color:var(--ink-3);cursor:pointer}.dropzone--over{border-color:var(--accent);color:var(--ink);background:var(--bg-2)}.import-warnings{margin:var(--space-1) 0 0;color:var(--ink-2);font-size:var(--text-xs);padding:0;list-style:none}.confidence{background:var(--bg-3);vertical-align:middle;border-radius:3px;width:48px;height:6px;display:inline-block;overflow:hidden}.confidence__bar{background:var(--accent);height:100%}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack--tight{gap:var(--space-2)}.inline{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.muted{color:var(--ink-3)}.mono{font-family:var(--font-mono)}.hide-mobile{display:initial}@media (width<=719px){.hide-mobile{display:none}}.nav__link svg,.tabbar__link svg{opacity:.9;flex:none}.btn svg{flex:none}.btn--icon{width:var(--control-h)}.btn--sm.btn--icon{width:32px}.btn--danger-fill{background:var(--danger);color:#fff}.skeleton{background:linear-gradient(90deg, var(--bg-2) 0%, var(--bg-3) 50%, var(--bg-2) 100%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s linear infinite shimmer}.skeleton--title{height:14px;margin:4px 0 8px}.skeleton--sub{height:10px}.skeleton--block{border-radius:var(--radius);height:160px}.row--skeleton:hover{background:0 0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty__body{max-width:36ch;margin:0 auto}.empty__action{margin-top:var(--space-4)}.menu{position:relative}.menu__panel{min-width:200px;padding:var(--space-1);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);z-index:30;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001f}.menu__item{align-items:center;gap:var(--space-2);white-space:nowrap;width:100%;height:36px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.menu__item:hover{background:var(--bg-2)}.menu__item--danger{color:var(--danger)}.popover-anchor{display:inline-block;position:relative}.popover{padding:var(--space-3);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);z-index:30;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #0000001f}.key-button{font-variant-numeric:tabular-nums;min-width:3.2em;color:var(--chord);font-weight:600}.save-state{min-width:5.5em;color:var(--ink-3);font-size:var(--text-sm);align-items:center;gap:6px;display:inline-flex}.save-state__dot{background:var(--ink-3);border-radius:50%;width:7px;height:7px}.save-state--saved .save-state__dot{background:#2f9e5b}.save-state--unsaved .save-state__dot,.save-state--saving .save-state__dot{background:var(--warn)}.save-state--error .save-state__dot{background:var(--danger)}.title-input{font-size:var(--text-xl);line-height:var(--leading-xl);letter-spacing:-.015em;border-radius:var(--radius-sm);background:0 0;border:0;width:100%;height:auto;padding:0;font-weight:700}.title-input:focus{outline:2px solid var(--accent);outline-offset:4px}.quiet-input{height:auto;color:var(--ink-2);border-radius:var(--radius-sm);background:0 0;border:0;padding:0}.quiet-input::placeholder{color:var(--ink-3)}.quiet-input:focus{outline:2px solid var(--accent);outline-offset:4px}.row__handle{color:var(--ink-3);align-items:center;display:inline-flex}.row__remove{opacity:0;transition:opacity .12s var(--ease-out)}.row:hover .row__remove,.row:focus-within .row__remove{opacity:1}@media (pointer:coarse){.row__remove{opacity:1}}.perf__controls{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.perf__controls::-webkit-scrollbar{display:none}.perf__controls>*{flex:none}.perf__group{align-items:center;gap:var(--space-1);border-radius:var(--radius);background:var(--bg-2);padding:2px;display:inline-flex}.perf__value{text-align:center;min-width:3.2em;font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--ink-3)}.btn--fixed{min-width:7.5em}@media (prefers-reduced-motion:reduce){.perf__banner,.skeleton{animation:none}.perf__controls,.perf__top{transition:none}}.perf__bottom{transition:transform .24s var(--ease-out), opacity .24s var(--ease-out);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.perf__bottom .perf__controls{opacity:1;pointer-events:auto;transition:opacity .24s var(--ease-out), transform .24s var(--ease-out);position:static;transform:none}.perf__bottom .perf__controls--hidden{opacity:0;pointer-events:none;position:absolute;bottom:100%;left:0;right:0;transform:translateY(12px)}.perf__bottom{position:absolute}.perf__sections{gap:var(--space-2);padding:var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom));border-top:1px solid var(--line);scrollbar-width:none;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(12px);display:flex;overflow-x:auto}.perf__sections::-webkit-scrollbar{display:none}.perf__sections .chip{flex:none}.perf__songs{border-top:0;padding-top:0}.chip--song{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}@media (prefers-reduced-motion:reduce){.perf__bottom{transition:none}}.row .btn{flex:none}.stale{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}button.row,label.row{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}@media (width<=719px){.tabbar__link{text-align:center;padding:0 2px;line-height:1.1}}.chip__x{margin-left:var(--space-1);color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.chip__x:hover{opacity:1}.agreement{gap:var(--space-3);flex-direction:column;max-width:640px;display:flex}.agreement__text{max-height:320px;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);font-size:var(--text-sm);line-height:1.5;overflow:auto}.agreement__text p,.agreement__text ul{margin:0 0 var(--space-3)}.agreement__text ul{padding-left:1.2em}.agreement__title{margin:0 0 var(--space-3);font-size:var(--text-md)}.agreement__heading{margin:var(--space-3) 0 var(--space-2);font-size:var(--text-sm)}.agreement__accept{align-items:flex-start;gap:var(--space-3);cursor:pointer;display:flex}.agreement__accept input{margin-top:4px}.perf__strip{border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(12px);align-items:center;display:flex}.perf__strip .perf__sections{backdrop-filter:none;background:0 0;border-top:0;flex:1;min-width:0}.perf__keypill{padding:var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom)) 0;flex:none;position:relative}.chip--key{color:var(--accent);white-space:nowrap;font-weight:600}.perf__keypanel{padding:var(--space-3);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);z-index:30;position:absolute;bottom:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000002e}.attach-tabs{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.attach-tabs__item{align-items:center;display:inline-flex}.attach-tabs__item .chip__x{margin-left:2px}.attach-tabs--compact{padding:var(--space-2) 0 calc(var(--space-2) + env(safe-area-inset-bottom)) var(--space-4);border-right:1px solid var(--line);margin:0;margin-right:var(--space-2);flex-wrap:nowrap}.attachment{min-height:240px}.attachment--pdf{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);width:100%}.attachment--page.attachment--pdf{height:min(80vh,1100px)}.attachment--perf.attachment--pdf{border:0;border-radius:0;height:calc(100vh - 200px)}.attachment--image img{border-radius:var(--radius);max-width:100%;height:auto}.attachment--page{margin-bottom:var(--space-6)}.perf__join{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-4);font-size:var(--text-sm);border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);display:flex;position:relative}.perf__join-chords{color:inherit;font:inherit;cursor:pointer;gap:var(--space-2);background:0 0;border:0;align-items:baseline;display:inline-flex}.perf__join-chord{color:var(--chord);font-variant-numeric:tabular-nums;font-weight:600}.perf__joinpanel{left:var(--space-4);min-width:280px;max-width:420px;padding:var(--space-2);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);z-index:30;gap:2px;display:grid;position:absolute;bottom:calc(100% + 6px);box-shadow:0 8px 24px #0000002e}.perf__joinopt{text-align:left;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;gap:2px;display:grid}.perf__joinopt:hover{background:var(--bg-2)}.perf__joinopt--on{background:var(--bg-3)}.perf__joinopt span{color:var(--chord);font-weight:600}.join{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-3) var(--space-2) calc(var(--space-3) + 28px);font-size:var(--text-sm);display:flex}.join__chords{color:var(--chord);font-weight:600}.select--sm{width:auto;height:30px;font-size:var(--text-sm)}.onsong__cta{margin:0}.onsong__summary{gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;display:flex}.onsong__sets{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.onsong__notes{padding-left:var(--space-5);font-size:var(--text-sm);margin:0}.onsong__warn{font-size:var(--text-sm)}.flow{font-size:var(--text-sm);margin-top:4px}.flow__line{flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0;display:flex}.flow__editor{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);border:1px dashed var(--line);border-radius:var(--radius)}.flow__hint{margin:var(--space-1) 0 0;font-size:var(--text-sm)}.flow__summary{margin-top:2px}.chip{border:1px solid var(--line);background:var(--bg);color:inherit;font:inherit;font-size:var(--text-sm);cursor:pointer;border-radius:999px;align-items:baseline;gap:4px;padding:2px 10px;display:inline-flex}.chip:hover{background:var(--bg-2)}.chip--on{background:var(--bg-3);border-color:#0000}.chip__count{font-weight:600}.chip__key{color:var(--ink-3)}.chip__x{color:var(--ink-3);margin-left:2px}.messages{margin-top:var(--space-5);gap:var(--space-3);display:grid}.messages__head{justify-content:space-between;align-items:center;display:flex}.messages__fresh ul{margin:var(--space-1) 0 0;padding-left:var(--space-5)}.messages__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.message{padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius)}.message--fresh{border-color:var(--accent)}.message__meta{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.message__remove{margin-left:auto}.message__body{margin:var(--space-1) 0 0;white-space:pre-wrap}.messages__compose{gap:var(--space-2);align-items:flex-end;display:flex}.messages__input{resize:vertical;flex:1}.badge{min-width:1.4em;margin-left:var(--space-2);background:var(--accent);color:var(--bg);font-size:var(--text-sm);text-align:center;vertical-align:middle;border-radius:999px;padding:0 6px;font-weight:600;display:inline-block}.notice{padding:var(--space-2) var(--space-3);border-left:3px solid var(--accent);background:var(--bg-2);border-radius:var(--radius-sm)}.perf__note{padding:var(--space-1) var(--space-4);font-size:var(--text-sm);border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
