.locale-select[data-v-b21b8e2b]{padding:.4rem .6rem;font-size:.9rem;font-family:var(--font-body);border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);cursor:pointer;max-width:200px}.account-value[data-v-b21b8e2b]{font-size:1rem;color:var(--text)}.account-email-row[data-v-b21b8e2b]{display:flex;align-items:center;justify-content:space-between;gap:1rem}.btn-logout[data-v-b21b8e2b]{padding:.35rem .85rem;font-size:.8rem;font-family:var(--font-body);color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:6px;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s,background .15s}.btn-logout[data-v-b21b8e2b]:hover{color:#dc2626;border-color:#dc2626;background:#fef2f2}.account-hint[data-v-b21b8e2b]{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.account-plan[data-v-b21b8e2b]{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.member-list[data-v-b21b8e2b]{list-style:none;padding:0;margin:0}.member-item[data-v-b21b8e2b]{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}.member-item[data-v-b21b8e2b]:last-child{border-bottom:none}.member-email[data-v-b21b8e2b]{font-size:.9rem;color:var(--text)}.member-role[data-v-b21b8e2b]{font-size:.8rem;color:var(--text-secondary)}.add-member-form[data-v-b21b8e2b]{margin-top:.75rem}.add-member-row[data-v-b21b8e2b]{display:flex;gap:.5rem}.add-member-input[data-v-b21b8e2b]{flex:1;padding:.4rem .6rem;font-size:.9rem;font-family:var(--font-body);border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.btn-add-member[data-v-b21b8e2b]{padding:.4rem .85rem;font-size:.85rem;font-family:var(--font-body);color:#fff;background:var(--accent, #2F6FED);border:none;border-radius:6px;cursor:pointer;white-space:nowrap}.btn-add-member[data-v-b21b8e2b]:disabled{opacity:.5;cursor:default}.add-member-error[data-v-b21b8e2b]{color:#dc2626;font-size:.85rem;margin-top:.35rem}.add-member-success[data-v-b21b8e2b]{color:#16a34a;font-size:.85rem;margin-top:.35rem}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(/assets/roboto-v50-latin-regular-CNwBRw8h.woff2) format("woff2")}@font-face{font-display:swap;font-family:Roboto;font-style:italic;font-weight:400;src:url(/assets/roboto-v50-latin-italic-CdnZD53w.woff2) format("woff2")}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(/assets/roboto-v50-latin-500-CkrA1NAy.woff2) format("woff2")}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(/assets/roboto-v50-latin-700-CXeAXeti.woff2) format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:300;src:url(/assets/source-sans-3-v19-latin-300-KpEPfINB.woff2) format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:400;src:url(/assets/source-sans-3-v19-latin-regular-DQi5PRDE.woff2) format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:italic;font-weight:400;src:url(/assets/source-sans-3-v19-latin-italic-bFKvakRX.woff2) format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:500;src:url(/assets/source-sans-3-v19-latin-500-DiWS0tcR.woff2) format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:600;src:url(/assets/source-sans-3-v19-latin-600-DeckBYAU.woff2) format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:700;src:url(/assets/source-sans-3-v19-latin-700-CkzU-mV9.woff2) format("woff2")}@font-face{font-display:swap;font-family:"Source Sans 3";font-style:normal;font-weight:900;src:url(/assets/source-sans-3-v19-latin-900-BkQ9IsEo.woff2) format("woff2")}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:300;src:url(/assets/poppins-v24-latin-300-Dku2WoCh.woff2) format("woff2")}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:400;src:url(/assets/poppins-v24-latin-regular-cpxAROuN.woff2) format("woff2")}@font-face{font-display:swap;font-family:Poppins;font-style:italic;font-weight:400;src:url(/assets/poppins-v24-latin-italic-B4GYq972.woff2) format("woff2")}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:500;src:url(/assets/poppins-v24-latin-500-C8OXljZJ.woff2) format("woff2")}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:600;src:url(/assets/poppins-v24-latin-600-zEkxB9Mr.woff2) format("woff2")}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:700;src:url(/assets/poppins-v24-latin-700-Qrb0O0WB.woff2) format("woff2")}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:800;src:url(/assets/poppins-v24-latin-800-Bd8-pIP1.woff2) format("woff2")}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:900;src:url(/assets/poppins-v24-latin-900-BmL1zqjw.woff2) format("woff2")}@font-face{font-display:swap;font-family:Raleway;font-style:normal;font-weight:300;src:url(/assets/raleway-v37-latin-300-B0PjX2GJ.woff2) format("woff2")}@font-face{font-display:swap;font-family:Raleway;font-style:normal;font-weight:400;src:url(/assets/raleway-v37-latin-regular-C5eIEfLm.woff2) format("woff2")}@font-face{font-display:swap;font-family:Raleway;font-style:italic;font-weight:400;src:url(/assets/raleway-v37-latin-italic-CKQnBqXR.woff2) format("woff2")}@font-face{font-display:swap;font-family:Raleway;font-style:normal;font-weight:500;src:url(/assets/raleway-v37-latin-500-D-8sZNrj.woff2) format("woff2")}@font-face{font-display:swap;font-family:Raleway;font-style:normal;font-weight:600;src:url(/assets/raleway-v37-latin-600-Dim-CLtL.woff2) format("woff2")}@font-face{font-display:swap;font-family:Raleway;font-style:normal;font-weight:700;src:url(/assets/raleway-v37-latin-700-BVpQLp0x.woff2) format("woff2")}@font-face{font-display:swap;font-family:Raleway;font-style:normal;font-weight:800;src:url(/assets/raleway-v37-latin-800-CKUvXht-.woff2) format("woff2")}@font-face{font-display:swap;font-family:Raleway;font-style:normal;font-weight:900;src:url(/assets/raleway-v37-latin-900-4r9nEKmA.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400 700;src:url(/assets/jetbrains-mono-latin-regular-Db4Uuiha.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400 700;src:url(/assets/jetbrains-mono-latin-ext-Bnd2h4Br.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}*{margin:0;padding:0;box-sizing:border-box;touch-action:manipulation}:root{--bg: #F4F5F7;--text: #1A1A1A;--text-secondary: #6B7280;--accent: #2F6FED;--chord-color: #2F6FED;--section-bg: #FFFFFF;--border: #E5E7EB;--header-bg: #FFFFFF;--header-text: #1A1A1A;--font-body: -apple-system, "SF Pro Text", "Roboto", sans-serif;--font-mono: "Courier New", "Courier", monospace;--font-sheet: "Source Sans 3", sans-serif;--lyrics-color: #1A1A1A;--section-label-size: .85rem;--section-label-weight: 700;--chord-size: .9rem;--chord-weight: 700;--lyrics-size: 1rem;--lyrics-weight: 400}body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.app{min-height:100vh}.header{background:var(--header-bg);color:var(--header-text);padding:.75rem 1.5rem;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border)}.header h1{font-size:1.1rem;font-weight:600}.header-title-row{display:flex;align-items:center;gap:.75rem}.header-logo{height:2.2rem;width:auto}.group-switcher{padding:.25rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:.85rem;cursor:pointer}.group-name{font-size:.85rem;color:var(--text-secondary)}.back-link{color:var(--text-secondary);text-decoration:none;font-size:.85rem}.back-link:hover{color:var(--text)}.breadcrumb{display:flex;align-items:center;gap:0;font-size:.85rem;flex-wrap:wrap}.breadcrumb a{color:var(--text-secondary);text-decoration:none}.breadcrumb a:hover{color:var(--text)}.breadcrumb span:last-child{color:var(--text);font-weight:600}.breadcrumb-sep{margin:0 .4rem;color:var(--text-secondary);opacity:.5}.song-header{margin-top:.35rem}.song-header h1{font-size:1.1rem;margin-bottom:0}.song-title-row{display:flex;align-items:baseline;gap:.25rem .5rem;min-width:0;flex-wrap:wrap}.song-artist-inline{font-size:.85rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.song-info{font-size:.85rem;color:var(--text-secondary);display:flex;gap:.75rem;align-items:center}.key-badge{background:var(--bg);color:var(--text-secondary);padding:.1rem .4rem;border-radius:4px;font-size:.8rem}.capo-badge{background:var(--bg);color:var(--text-secondary);padding:.1rem .4rem;border-radius:4px;font-size:.8rem;font-weight:700;line-height:inherit;border:none;cursor:pointer;font-family:var(--font-body);transition:opacity .15s}.capo-badge:hover{color:var(--accent)}.capo-badge.resolved{text-decoration:line-through;opacity:.4}.loading{text-align:center;padding:3rem;color:var(--text-secondary)}.song-list .songs{list-style:none;max-width:none;margin:0;padding:1rem}.song-list .songs li{border-bottom:1px solid var(--border)}.song-link-row{display:flex;align-items:center}.song-link-row .song-link{flex:1;min-width:0}.btn-edit-song{flex-shrink:0;margin-left:.5rem;opacity:.4}.btn-edit-song:hover{opacity:1}.btn-remove-pool{flex-shrink:0;margin-left:.25rem;opacity:.3;font-size:1.1rem;color:var(--text-secondary)}.btn-remove-pool:hover{opacity:1;color:#dc2626}.song-link{display:flex;justify-content:space-between;align-items:center;padding:1rem .5rem;text-decoration:none;color:var(--text);transition:background .15s}.song-link:hover{background:var(--bg)}.song-title{font-size:1.1rem;font-weight:500}.song-version-link{margin-left:.3rem;font-size:.72rem;font-weight:600;color:var(--text-secondary, #6B7280);text-decoration:none;border:1px solid var(--border, #ddd);border-radius:3px;padding:0 .3rem;line-height:1.4;display:inline-block;vertical-align:middle}.song-version-link:hover{color:var(--accent);border-color:var(--accent)}.song-meta{display:flex;gap:.75rem;align-items:center;font-size:.85rem;color:var(--text-secondary)}.panel-set .song-artist,.panel-set~.panel-songs .song-artist{max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-key{background:var(--bg);padding:.15rem .5rem;border-radius:4px;font-family:var(--font-body);font-weight:500}.chord-diagram-panel{display:flex;flex-wrap:wrap;gap:.25rem .125rem;padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:1px solid var(--border)}.chord-diagram-name{font-size:10px;font-weight:600;font-family:var(--font-sheet)}.chord-diagram-open,.chord-diagram-muted{font-size:9px;font-weight:600;font-family:var(--font-body)}.chord-diagram-fretnum{font-size:8px;font-family:var(--font-body);fill:#555!important}.chord-diagram-panel--edit{margin-top:1rem}.chord-diagram-panel--edit .chord-diagram-wrap{padding-bottom:2rem;margin:0 .4rem .5rem}.chord-diagram-panel--edit .chord-diagram{transform:scale(1.35);transform-origin:top center}.chord-diagram-wrap{display:inline-flex;flex-direction:column;align-items:center}.chord-diagram-nav{display:flex;align-items:center;gap:.15rem;margin-top:.25rem}.chord-diagram-panel--edit .chord-diagram-nav{margin-top:2.25rem}.chord-nav-btn{width:1.4rem;height:1.4rem;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--text);font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;font-family:var(--font-body)}.chord-nav-btn:hover{border-color:var(--accent);color:var(--accent)}.chord-nav-counter{font-size:.65rem;color:var(--text-secondary);min-width:1.8rem;text-align:center;font-family:var(--font-body)}.chord-sheet{max-width:800px;margin:1rem auto;padding:2rem 1.5rem;background:#fff;border-radius:8px}.chord-sheet--columns{max-width:none;width:max-content;min-width:100%;margin:0;padding:.5rem;border-radius:0}.chord-columns{display:flex;gap:0 1.25rem}.chord-column{flex:0 0 auto}.chord-sheet--columns .chord-line{flex-wrap:nowrap}.section{margin-bottom:2rem}.section-label{font-family:var(--font-sheet);font-size:var(--section-label-size);font-weight:var(--section-label-weight);letter-spacing:.02em;color:var(--text-secondary);margin-bottom:.2rem}.section--chorus{background:var(--bg);padding:1rem;border-radius:6px;border-left:3px solid var(--border)}.section--bridge{padding-left:1.5rem;border-left:3px solid var(--border)}.section--note{font-style:italic;padding-left:1rem;border-left:2px dashed var(--text-secondary);opacity:.75}.chord-line{font-family:var(--font-sheet);font-size:1rem;line-height:1;margin-bottom:.3rem;white-space:pre-wrap;display:flex;flex-wrap:wrap}.chord-line--chords-only{margin-bottom:.2rem}.chord-line--chords-only .chord-segment{flex-direction:row}.chord-segment{display:inline-flex;flex-direction:column;align-items:flex-start}.chord{color:var(--chord-color);font-weight:var(--chord-weight);font-size:var(--chord-size);height:1.4em;line-height:1.4;display:block}.chord--empty{visibility:hidden}.lyrics{display:block;font-size:var(--lyrics-size);font-weight:var(--lyrics-weight);line-height:1.3;white-space:pre;color:var(--lyrics-color)}.empty-line{height:1rem}.chord-sheet--compact .section{margin-bottom:.5rem}.chord-sheet--compact .section-label{margin-bottom:-.1rem}.chord-sheet--compact .chord-line{margin-bottom:.1rem}.chord-sheet--compact .chord-line--chords-only{margin-bottom:.05rem}.chord-sheet--compact .chord{height:1.2em;line-height:1.2}.chord-sheet--compact .lyrics{line-height:1.15}.chord-sheet--compact .empty-line{height:.3rem}.chord-sheet--compact .section--chorus{padding:.5rem .75rem}.header-row{display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:.75rem;min-width:0}.header-left .song-header{margin-top:0;min-width:0}.header-left .song-header h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-left .song-info{font-size:.8rem}.btn{display:inline-block;padding:.5rem 1rem;border:none;border-radius:6px;font-family:var(--font-body);font-size:.9rem;cursor:pointer;text-decoration:none;line-height:1.4}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-header{background:none;color:var(--accent);font-size:.85rem;font-weight:500;padding:.3rem .6rem}.btn-header:hover{background:var(--bg)}.header-actions{display:flex;align-items:center;gap:.5rem}.btn-icon{color:var(--text-secondary);display:flex;align-items:center;justify-content:center;padding:.35rem;border:none;background:none;border-radius:6px;cursor:pointer;transition:color .15s,background .15s}.btn-icon:hover{color:var(--accent);background:var(--bg)}.editor-toggles{display:flex;gap:.5rem;align-items:center}.editor-mode-toggle{display:flex;gap:0}.mode-btn{padding:.25rem .6rem;font-size:.75rem;border:1px solid var(--border);background:#fff;cursor:pointer;font-family:var(--font-body);color:var(--text)}.mode-btn:first-child{border-radius:4px 0 0 4px}.mode-btn:last-child{border-radius:0 4px 4px 0;border-left:none}.mode-btn+.mode-btn{border-left:none}.mode-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.btn-info{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;border-radius:50%;border:1px solid var(--text-secondary);background:none;color:var(--text-secondary);font-size:.65rem;font-weight:700;font-family:var(--font-body);cursor:pointer;padding:0;margin-left:.3rem;vertical-align:middle;line-height:1}.btn-info:hover{border-color:var(--accent);color:var(--accent)}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem}.lightbox{background:#fff;border-radius:10px;padding:1.75rem 2rem;max-width:480px;width:100%;position:relative;max-height:90vh;overflow-y:auto}.lightbox h2{font-size:1.1rem;font-weight:700;margin-bottom:.75rem}.lightbox h3{font-size:.9rem;font-weight:600;margin-top:1rem;margin-bottom:.35rem}.lightbox p{font-size:.88rem;line-height:1.5;color:var(--text)}.lightbox ul{list-style:none;padding:0;margin:0}.lightbox li{font-size:.85rem;line-height:1.6;padding-left:1rem;position:relative;color:var(--text)}.lightbox li:before{content:"•";position:absolute;left:0;color:var(--text-secondary)}.lightbox kbd{display:inline-block;padding:.1rem .35rem;font-size:.78rem;font-family:var(--font-mono);background:var(--bg);border:1px solid var(--border);border-radius:3px;line-height:1.3}.lightbox-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border:none;background:none;font-size:1.3rem;color:var(--text-secondary);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center}.lightbox-close:hover{background:var(--bg);color:var(--text)}.wysiwyg-editor{position:relative}.wysiwyg-sheet{font-family:Courier New,monospace;font-size:.9rem;border:1px solid var(--border);border-radius:0 6px 6px;background:#fff;padding:.5rem .75rem;min-height:80px;outline:none;cursor:text}.wysiwyg-sheet:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #2f6fed1f}.wysiwyg-sheet .ce-chord{white-space:pre;color:var(--chord-color);font-weight:700;min-height:1.3em;line-height:1.3;background:color-mix(in srgb,var(--chord-color) 12%,white);border-radius:2px;outline:none}.wysiwyg-sheet .ce-chord:empty,.wysiwyg-sheet .ce-chord:has(>br:only-child){min-height:3px;opacity:.3}.wysiwyg-sheet .ce-chord:focus{min-height:1.3em;opacity:1;background:color-mix(in srgb,var(--chord-color) 20%,white)}.wysiwyg-sheet .ce-lyric{white-space:pre-wrap;min-height:1.5em;line-height:1.5;color:var(--text);outline:none}.wysiwyg-size-s{font-size:.78rem}.wysiwyg-size-m{font-size:.9rem}.wysiwyg-size-l{font-size:1.05rem}.wysiwyg-size-xl{font-size:1.22rem}.wysiwyg-line-flag{position:absolute;font-size:.6rem;font-weight:600;font-family:var(--font-body);padding:.15rem .4rem .15rem .55rem;border-radius:0 4px 4px 0;color:#fff;z-index:3;line-height:1.3;pointer-events:none;text-transform:uppercase;letter-spacing:.04em;clip-path:polygon(6px 0,100% 0,100% 100%,6px 100%,0 50%)}.wysiwyg-line-flag.flag-lyric{background:var(--text)}.wysiwyg-line-flag.flag-chord{background:var(--chord-color)}.split-choice{position:absolute;z-index:10;display:flex;gap:2px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:2px;box-shadow:0 2px 8px #00000026;font-family:var(--font-body)}.split-choice-btn{padding:.25rem .5rem;font-size:.72rem;font-family:inherit;border:none;border-radius:4px;cursor:pointer;background:var(--bg);color:var(--text);white-space:nowrap}.split-choice-btn:hover{background:var(--accent);color:#fff}.song-sections{display:flex;flex-direction:column;gap:1rem}.song-section{position:relative}.section-tab-flag{display:flex;align-items:stretch;gap:0;position:relative;margin-bottom:-1px;z-index:2}.section-drag-handle{cursor:grab;color:var(--text-secondary);opacity:1;font-size:.85rem;padding:0 .3rem 0 .5rem;letter-spacing:-.1em;-webkit-user-select:none;user-select:none;touch-action:none;min-width:28px;display:flex;align-items:center;justify-content:center}.section-drag-handle:hover{color:var(--accent)}.section-drag-handle:active{cursor:grabbing;opacity:1}.song-section.dragging{opacity:.5;box-shadow:0 2px 8px #00000026;border-radius:6px}.song-section.drag-over:before{content:"";position:absolute;top:-.6rem;left:0;right:0;height:3px;background:var(--accent);border-radius:2px}.song-section.drag-over-after:after{content:"";position:absolute;bottom:-.6rem;left:0;right:0;height:3px;background:var(--accent);border-radius:2px}.section-tab-btn{display:flex;align-items:center;gap:.25rem;padding:.3rem .6rem;font-size:.75rem;font-weight:600;font-family:var(--font-body);color:var(--text-secondary);background:#fff;border:1px solid var(--border);border-bottom:1px solid #fff;border-radius:6px 6px 0 0;cursor:pointer;white-space:nowrap}.section-tab-btn:hover{color:var(--accent)}.section-tab-flag.dropdown-open{z-index:20}.section-tab-arrow{font-size:.6rem;opacity:.5}.section-type-menu{position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--border);border-radius:0 6px 6px;box-shadow:0 4px 12px #0000001a;z-index:20;min-width:100px;overflow:hidden}.section-type-menu button{display:block;width:100%;padding:.4rem .75rem;font-size:.8rem;font-family:var(--font-body);background:none;border:none;cursor:pointer;text-align:left;color:var(--text)}.section-type-menu button:hover{background:var(--bg)}.section-type-menu button.active{color:var(--accent);font-weight:600}.section-remove-btn{padding:.2rem .45rem;font-size:.85rem;font-family:var(--font-body);color:var(--text-secondary);background:none;border:none;cursor:pointer;border-radius:4px;line-height:1;margin-left:.15rem}.section-remove-btn:hover{color:#dc2626;background:#fee2e2}.btn-add-section{padding:.5rem 1rem;font-size:.8rem;font-family:var(--font-body);color:var(--accent);background:none;border:1px dashed var(--border);border-radius:6px;cursor:pointer;text-align:center}.btn-add-section:hover{border-color:var(--accent);background:#2f6fed0a}.btn-insert-section{display:block;width:100%;padding:.25rem 0;font-size:.8rem;font-family:var(--font-body);color:var(--text-muted, #888);background:none;border:1px dashed var(--border);border-radius:4px;cursor:pointer;text-align:center;transition:color .15s,border-color .15s,background .15s}.btn-insert-section:hover{color:var(--accent);border-color:var(--accent);background:#2f6fed0a}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15}.song-edit-form.form{max-width:600px}.editor-controls{margin-bottom:1.25rem}.editor-controls .form-label-row{margin-bottom:.5rem}.editor-controls .btn-paste{width:100%}.raw-editor{width:100%;padding:.6rem .75rem;font-family:var(--font-mono);font-size:.9rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);line-height:1.5;resize:vertical}.raw-editor:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2f6fed1f}@media (min-width: 960px) and (min-aspect-ratio: 1/1){.song-edit-form.form{max-width:none;padding:1.5rem}.song-edit-layout{display:flex;gap:1.5rem;align-items:flex-start}.song-edit-sidebar{flex:0 0 22%;min-width:180px;position:sticky;top:4.5rem}.song-edit-main{flex:1;min-width:0}}.form{max-width:800px;margin:0 auto;padding:1.5rem}.form-field{display:block;margin-bottom:1.25rem}.form-label{display:block;font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.05em}.form-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.form-label-row .form-label{margin-bottom:0}.btn-paste{padding:.3rem .7rem;font-size:.78rem;border:1px solid var(--border);border-radius:4px;background:#fff;cursor:pointer;color:var(--text)}.btn-paste:hover{border-color:var(--accent);color:var(--accent)}.btn-paste:disabled{opacity:.6;cursor:default}.btn-paste .spinner{display:inline-block;width:.75em;height:.75em;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:.3em}@keyframes spin{to{transform:rotate(360deg)}}.form-field input,.form-field textarea{width:100%;padding:.6rem .75rem;font-family:var(--font-body);font-size:1rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);line-height:1.5}.form-field textarea{font-family:var(--font-mono);font-size:.9rem;resize:vertical}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2f6fed1f}.form-actions{padding-top:.5rem;display:flex;gap:.5rem}.song-creator{margin-top:.75rem;font-size:.8rem;color:#6b7280}.version-info{margin-top:.75rem}.version-links{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.version-link{font-size:.85rem;color:var(--accent);text-decoration:none}.version-link:hover{text-decoration:underline}.version-lang{color:#6b7280;font-size:.78rem}.btn-delete{display:inline-block;padding:.5rem 1rem;border:1px solid #DC2626;border-radius:6px;background:none;color:#dc2626;font-family:var(--font-body);font-size:.9rem;cursor:pointer;line-height:1.4}.btn-delete:hover{background:#fee2e2}.btn-delete:disabled{opacity:.5;cursor:not-allowed}.color-options{display:flex;gap:.75rem}.color-swatch{width:2.3rem;height:2.3rem;border-radius:50%;border:3px solid transparent;cursor:pointer;position:relative;transition:border-color .15s;display:flex;align-items:flex-end;justify-content:center;padding-bottom:0}.color-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--text)}.color-name{font-size:.7rem;color:#fff;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5);position:absolute;bottom:-1.4rem;color:var(--text);text-shadow:none}.font-options{display:flex;gap:.5rem;flex-wrap:wrap}.font-option{padding:.35rem .65rem;border:2px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;font-size:.85rem;color:var(--text);transition:border-color .15s}.font-option.active{border-color:var(--accent);background:var(--section-bg)}.setting-row{display:flex;gap:1.5rem}.setting-row+.form-field{margin-top:1rem}.setting-group{flex:1}.setting-sublabel{display:block;font-size:.75rem;color:var(--text-secondary);margin-bottom:.3rem}.size-options{display:flex;gap:0}.size-option{padding:.35rem .6rem;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:.8rem;color:var(--text);font-family:var(--font-body);transition:background .15s,border-color .15s}.size-option:first-child{border-radius:6px 0 0 6px}.size-option:last-child{border-radius:0 6px 6px 0}.size-option+.size-option{border-left:none}.size-option.active{background:var(--accent);border-color:var(--accent);color:#fff}.toggle-row{display:flex;align-items:center;gap:.75rem}.toggle-btn{padding:.4rem 1rem;border:1px solid var(--border);border-radius:4px;background:#fff;cursor:pointer;font-size:.85rem;min-width:3.5rem}.toggle-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.toggle-hint{font-size:.8rem;color:var(--text-secondary)}.preview-ruler-wrap{display:flex;gap:0}.ruler-left{width:12px;flex-shrink:0;position:relative;margin-right:4px;margin-bottom:16px}.ruler-left .ruler-track{position:absolute;top:0;bottom:0;right:0;width:8px;background:repeating-linear-gradient(to top,#999 0px,#999 1.5px,transparent 1.5px,transparent 50px);background-position:bottom;border-right:1.5px solid #999}.ruler-left .ruler-track:before,.ruler-left .ruler-track:after{content:"";position:absolute;right:0;height:1.5px;background:#999}.ruler-left .ruler-track:before{top:0;width:12px}.ruler-left .ruler-track:after{bottom:0;width:12px}.preview-ruler-inner{flex:1;min-width:0}.ruler-bottom{height:12px;position:relative;margin-top:4px}.ruler-bottom .ruler-track{position:absolute;left:0;right:0;top:0;height:8px;background:repeating-linear-gradient(to right,#999 0px,#999 1.5px,transparent 1.5px,transparent 50px);border-top:1.5px solid #999}.ruler-bottom .ruler-track:before,.ruler-bottom .ruler-track:after{content:"";position:absolute;top:0;width:1.5px;background:#999}.ruler-bottom .ruler-track:before{left:0;height:12px}.ruler-bottom .ruler-track:after{right:0;height:12px}.settings-preview{background:#fff;border:1px solid var(--border);border-radius:6px;padding:1.5rem}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.5rem;background:var(--header-bg);border-bottom:1px solid var(--border)}.toolbar-left{display:flex;align-items:center;gap:.35rem}.toolbar .btn-icon.active{color:var(--accent)}.sheet-container{position:relative;scrollbar-width:none}.sheet-container::-webkit-scrollbar{display:none}.chord-sheet{opacity:0}.chord-sheet.sheet-ready{opacity:1;transition:opacity .6s ease}.transpose-toolbar{display:flex;align-items:center;justify-content:flex-start;gap:.25rem}.transpose-btn{width:2rem;height:2rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);font-size:1.1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);transition:background .15s,border-color .15s}.transpose-btn:hover{background:var(--bg);border-color:var(--accent)}.transpose-label{min-width:2.5rem;text-align:center;font-size:.85rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.transpose-offset{font-size:.75em;opacity:.7}.transpose-revert{border:none;background:none;color:var(--text-secondary);cursor:pointer;padding:.15rem;border-radius:4px;display:flex;align-items:center;justify-content:center;margin-left:.1rem;transition:color .15s}.transpose-revert:hover{color:var(--accent)}.auth-email{font-size:.8rem;color:var(--text-secondary);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-icon{text-align:center;margin:2rem 0 1rem}.login-icon img{height:5rem;width:auto}.login-view .form{margin-top:1rem}.form-hint{font-size:.9rem;color:var(--text-secondary);margin-bottom:1.25rem}.form-error{color:#dc2626;font-size:.85rem;margin-top:.75rem}.form-link{margin-top:1rem;font-size:.85rem}.form-link a{color:var(--accent)}.code-input{font-size:1.5rem!important;letter-spacing:.3em;text-align:center;font-family:var(--font-body)!important}.login-locale{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.login-locale-btn{padding:.3rem .6rem;font-size:.8rem;font-family:var(--font-body);color:var(--text-secondary);background:none;border:1px solid transparent;border-radius:4px;cursor:pointer;transition:color .15s,border-color .15s}.login-locale-btn:hover{color:var(--text);border-color:var(--border)}.login-locale-btn.active{color:var(--accent);border-color:var(--accent);font-weight:500}.login-prompt{text-align:center;padding:4rem 1.5rem;color:var(--text-secondary)}.login-prompt p{margin-bottom:1.5rem;font-size:1rem}.empty-pool{text-align:center;padding:2rem 1.5rem;color:var(--text-secondary);font-size:.9rem}.search-section{max-width:none;margin:0;padding:1rem}.search-bar{position:relative}.search-bar input{width:100%;padding:.6rem 2rem .6rem .75rem;font-family:var(--font-body);font-size:.95rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text)}.search-bar input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2f6fed1f}.search-clear{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);border:none;background:none;font-size:1.2rem;color:var(--text-secondary);cursor:pointer;padding:.2rem .3rem;line-height:1}.search-clear:hover{color:var(--text)}.search-results{margin-top:.5rem;border:1px solid var(--border);border-radius:6px;background:#fff}.search-result-item{display:flex;align-items:center}.search-result-item .song-link{flex:1;min-width:0}.search-result-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0;padding-right:.5rem}.btn-add{border:none;background:none;color:var(--accent);font-size:.8rem;font-weight:600;cursor:pointer;font-family:var(--font-body);padding:.2rem .5rem;border-radius:4px;white-space:nowrap}.btn-add:hover{background:var(--bg)}.in-pool{font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.btn-add-set-search{border:none;background:none;color:var(--accent);font-size:.8rem;font-weight:600;cursor:pointer;font-family:var(--font-body);padding:.2rem .5rem;border-radius:4px;white-space:nowrap}.btn-add-set-search:hover{background:var(--bg)}.btn-add-set-search.in-set{color:var(--text-secondary);cursor:default}.btn-add-set-search.in-set:hover{background:none}.tab-bar{display:none}.panels{display:block}.panel-heading{font-size:1rem;font-weight:600;padding:1rem 1rem 0;color:var(--text)}.panel-heading-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem 0}.panel-heading-row .panel-heading{padding:0}.btn-new-song{font-size:.8rem;padding:.4rem .75rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;white-space:nowrap;text-decoration:none}.btn-new-song:hover{opacity:.85}.set-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem 0}.set-header .panel-heading{padding:0}.set-header-info{min-width:0}.set-saved-at{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.btn-save-set{flex-shrink:0;padding:.4rem .75rem;font-size:.8rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;white-space:nowrap}.btn-save-set:hover,.btn-new-set:hover{opacity:.85}.set-header-actions{display:flex;gap:.5rem;flex-shrink:0}.btn-new-set{flex-shrink:0;padding:.4rem .75rem;font-size:.8rem;background:var(--border);color:var(--text);border:none;border-radius:6px;cursor:pointer;white-space:nowrap}.set-search-section{padding:.75rem 1rem;border-bottom:1px solid var(--border)}.set-search-results{list-style:none;padding:0;margin:.5rem 0 0}.set-result-item{display:flex;align-items:center;border-bottom:1px solid var(--border)}.set-result-item:last-child{border-bottom:none}.set-result-btn{display:flex;flex-direction:column;gap:.15rem;width:100%;padding:.5rem .25rem;background:none;border:none;cursor:pointer;text-align:left}.set-result-btn:hover{background:var(--bg)}.set-result-active .set-result-name{font-weight:700}.btn-delete-set{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:1.1rem;border-radius:4px;margin-right:.25rem}.btn-delete-set:hover{background:#fee2e2;color:#dc2626}.set-result-name{font-size:.9rem;color:var(--text)}.set-result-meta{font-size:.75rem;color:var(--text-secondary)}.set-new-btn{width:100%;margin-top:.5rem}.set-songs{padding-top:.5rem}.btn-add-set{flex-shrink:0;width:2rem;height:2rem;border:none;border-radius:50%;background:none;color:var(--accent);font-size:1.2rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.5;transition:opacity .15s;font-family:var(--font-body)}.btn-add-set:hover{opacity:1}.btn-add-set.in-set{color:#dc2626}.btn-remove-set{flex-shrink:0;width:2rem;height:2rem;border:none;border-radius:50%;background:none;color:#dc2626;font-size:1.3rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.5;transition:opacity .15s;font-family:var(--font-body);margin-left:.5rem}.btn-remove-set:hover{opacity:1}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:700;margin-left:.35rem;line-height:1}@media (min-width: 1025px){.panels{display:grid;grid-template-columns:2fr 3fr;min-height:calc(100vh - 60px)}.panels:has(>:only-child){grid-template-columns:1fr}.panel-set{border-right:1px solid var(--border);overflow-y:auto;position:sticky;top:60px;max-height:calc(100vh - 60px)}.tab-bar{display:none}.panel-hidden-mobile{display:block!important}.panel-songs .songs,.panel-songs .search-section{max-width:none}}@media (max-width: 1024px){.tab-bar{display:flex;border-bottom:1px solid var(--border);background:var(--header-bg);position:sticky;top:0;z-index:9}.tab-btn{flex:1;padding:.65rem 1rem;border:none;background:none;font-family:var(--font-body);font-size:.9rem;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.panel-hidden-mobile{display:none}.panel-heading-row .panel-heading,.panel-songs>.panel-heading{display:none}}.set-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;gap:.4rem;padding:.5rem;background:var(--header-bg);border-top:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.set-nav::-webkit-scrollbar{display:none}.set-nav-item{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:3.5rem;padding:.4rem .6rem;border-radius:6px;background:var(--bg);text-decoration:none;color:var(--text-secondary);border:2px solid transparent;transition:border-color .15s,background .15s}.set-nav-item.active{border-color:var(--accent);color:var(--text);background:#fff}.set-nav-title{font-size:.7rem;font-weight:500;line-height:1.2;text-align:center;white-space:nowrap;max-width:100%}.set-nav-artist{font-size:.6rem;line-height:1.2;text-align:center;color:var(--text-secondary);white-space:nowrap;max-width:10ch;overflow:hidden;text-overflow:ellipsis}.set-nav-key{font-size:.6rem;color:var(--text-secondary);margin-top:.1rem}.list-pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem}.pagination-side{position:fixed;right:.5rem;top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:.25rem;opacity:.5;transition:opacity .2s}.pagination-side:hover{opacity:1}.pagination-side-btn{width:2.5rem;height:2.5rem;border:1px solid var(--border);border-radius:50%;background:var(--header-bg);cursor:pointer;font-size:1rem;line-height:1;color:var(--text);display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.pagination-side-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pagination-side-btn:disabled{opacity:.3;cursor:not-allowed}.pagination-side-page{width:2.2rem;height:2.2rem;border:1px solid var(--border);border-radius:50%;background:var(--header-bg);cursor:pointer;font-size:.7rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-family:var(--font-body);transition:background .15s,border-color .15s,color .15s}.pagination-side-page:hover{border-color:var(--accent);color:var(--accent)}.pagination-side-page.active{background:var(--accent);border-color:var(--accent);color:#fff}.pagination-btn{padding:.3rem .75rem;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;font-size:.85rem;font-family:var(--font-body);color:var(--text);transition:background .15s,border-color .15s}.pagination-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pagination-btn:disabled{opacity:.3;cursor:not-allowed}.pagination-info{font-size:.85rem;font-weight:500;color:var(--text-secondary);min-width:3rem;text-align:center}.song-view:has(.set-nav) .sheet-container{padding-bottom:4rem}.btn-share-set{color:var(--text-secondary)}.share-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem}.share-dialog{background:#fff;border-radius:10px;padding:1.75rem 2rem;max-width:400px;width:100%}.share-dialog h3{font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.share-dialog p{font-size:.88rem;color:var(--text);margin-bottom:.75rem}.share-email-input{width:100%;padding:.6rem .75rem;font-family:var(--font-body);font-size:1rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);margin-bottom:.75rem}.share-email-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2f6fed1f}.share-dialog-actions{display:flex;gap:.5rem}.share-error{color:#dc2626;font-size:.85rem;margin-bottom:.75rem}.share-success{color:#16a34a;font-size:.85rem;margin-bottom:.75rem}.share-notification{margin:.75rem 1rem 0;padding:.75rem 1rem;background:#eff6ff;border:1px solid #BFDBFE;border-radius:8px}.share-notification p{font-size:.88rem;color:var(--text);margin-bottom:.5rem}.share-notification-actions{display:flex;gap:.5rem}.btn-sm{padding:.3rem .7rem;font-size:.8rem}.version-dialog .form-field{margin-bottom:1rem}.version-select{width:100%;padding:.6rem .75rem;font-family:var(--font-body);font-size:1rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text)}.version-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2f6fed1f}.version-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text);margin-bottom:1.25rem;cursor:pointer}.version-checkbox input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.version-dialog-actions{display:flex;gap:.5rem}.btn-version-song{flex-shrink:0;margin-left:.25rem;opacity:.4;color:var(--text-secondary)}.btn-version-song:hover{opacity:1;color:var(--accent)}.zoom-select{display:none;font-size:.75rem;padding:.25rem .35rem;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--text);font-family:var(--font-body);cursor:pointer}.zoom-toggle{display:flex;gap:0}.zoom-btn{padding:.25rem .5rem;font-size:.75rem;border:1px solid var(--border);background:#fff;cursor:pointer;font-family:var(--font-body);color:var(--text);transition:background .15s,border-color .15s}.zoom-btn:first-child{border-radius:4px 0 0 4px}.zoom-btn:last-child{border-radius:0 4px 4px 0}.zoom-btn+.zoom-btn{border-left:none}.zoom-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.version-tabs{display:flex;gap:.35rem}.version-tab{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .7rem;font-size:.78rem;font-weight:600;font-family:var(--font-body);color:var(--text-secondary);text-decoration:none;border:1px solid var(--border);border-radius:999px;background:#fff;transition:background .15s,color .15s,border-color .15s}.version-tab:hover{border-color:var(--accent);color:var(--accent)}.version-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.share-member-section{margin-bottom:.75rem}.share-member-heading{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.share-member-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.share-member-btn{display:block;width:100%;padding:.5rem .75rem;font-size:.9rem;font-family:var(--font-body);background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:pointer;text-align:left;color:var(--text);transition:background .15s,border-color .15s}.share-member-btn:hover{border-color:var(--accent);background:#eff6ff}.share-or-label{font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem}.stream-dialog{max-width:400px}.stream-member-check{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;max-height:200px;overflow-y:auto}.stream-check-label{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .15s,border-color .15s}.stream-check-label:hover{border-color:var(--accent);background:#eff6ff}.stream-check-label input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.btn-stream{color:var(--text-secondary)}.btn-stream:hover{color:var(--accent)}.btn-stop-stream{flex-shrink:0;padding:.4rem .75rem;font-size:.8rem;background:#dc2626;color:#fff;border:none;border-radius:6px;cursor:pointer;white-space:nowrap;font-family:var(--font-body)}.btn-stop-stream:hover{opacity:.85}.stream-notification{margin:.75rem 1rem 0;padding:.75rem 1rem;background:#f0fdf4;border:1px solid #BBF7D0;border-radius:8px}.stream-notification p{font-size:.88rem;color:var(--text);margin-bottom:.5rem}.stream-indicator{margin:.75rem 1rem 0;padding:.5rem 1rem;background:#f0fdf4;border:1px solid #BBF7D0;border-radius:8px;font-size:.85rem;color:var(--text)}.update-banner{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.5rem 1rem;background:var(--accent);color:#fff;font-size:.85rem;font-weight:500}.update-banner .btn{background:#fff;color:var(--accent);border:none;font-weight:600}.notification-banner{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.5rem 1rem;background:#eff6ff;border-bottom:1px solid #BFDBFE;font-size:.85rem;font-weight:500;color:var(--text)}.notification-banner-link{color:var(--accent);font-weight:600;text-decoration:none}.notification-banner-link:hover{text-decoration:underline}.stream-badge{font-size:.72rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;white-space:nowrap}.stream-badge--master{background:#dc2626;color:#fff}.stream-badge--follower{background:#16a34a;color:#fff;cursor:pointer;border:none;font-family:var(--font-body);transition:opacity .15s}.stream-badge--follower:hover{opacity:.8}.song-view.display-mode{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000;padding:0!important;margin:0!important;overflow:auto;cursor:pointer}.song-view.display-mode .sheet-container{padding:0!important}.song-view.display-mode .chord-sheet{max-width:none!important;margin:0!important;background:#000!important;color:#fff;--lyrics-color: #fff;--lyrics-size: 1.4rem;--text-secondary: #aaa;border-radius:0!important;padding:calc(env(safe-area-inset-top) + 1rem) 1.5rem 1rem 1.5rem!important}.display-mode .section--chorus{background:#ffffff0d;border-left-color:#fff3}.display-mode .section--bridge{border-left-color:#fff3}.chord-line--hide-chords .chord-segment{flex-direction:row}.chord-line--hide-chords .lyrics{line-height:1.5}.stream-mode-choice{display:flex;gap:.5rem;flex-wrap:wrap}.btn-display{background:#1a1a1a;color:#fff;border:1px solid #333}.btn-display:hover{background:#333}.transpose-lock-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text-secondary);cursor:pointer;padding:0;transition:color .15s,border-color .15s,background .15s}.transpose-lock-btn:hover{border-color:var(--accent);color:var(--accent)}.streamer-key-info{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.stream-waiting{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:2rem}.stream-waiting-content{text-align:center;max-width:400px}.stream-waiting-content h2{font-size:1.2rem;font-weight:600;margin-bottom:.75rem;color:var(--text)}.stream-waiting-content p{font-size:.95rem;color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.5}.tap-tempo-link{display:inline-block;margin-top:.4rem;padding:.25rem .6rem;font-size:.78rem;font-weight:600;color:var(--primary);background:none;border:1.5px solid var(--primary);border-radius:4px;cursor:pointer;letter-spacing:.02em}.tap-tempo-link:hover{background:var(--primary);color:#fff}.tap-tempo-dialog{max-width:320px;text-align:center}.tap-tempo-hint{font-size:.85rem;color:var(--text-secondary);margin-bottom:1rem}.tap-tempo-pad{display:flex;flex-direction:column;align-items:center;justify-content:center;width:160px;height:160px;margin:0 auto 1.25rem;border-radius:50%;background:var(--bg);border:3px solid var(--border);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;transition:border-color .1s,background .1s}.tap-tempo-pad:active{background:var(--primary);border-color:var(--primary)}.tap-tempo-pad:active .tap-tempo-bpm,.tap-tempo-pad:active .tap-tempo-label{color:#fff}.tap-tempo-bpm{font-size:2.2rem;font-weight:700;line-height:1;color:var(--text)}.tap-tempo-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-top:.2rem}.tap-tempo-actions{display:flex;gap:.75rem;justify-content:center}.tuner-dialog{max-width:360px;text-align:center}.tuner-instrument-tabs{display:flex;gap:0;margin-bottom:1.25rem}.tuner-tab{flex:1;padding:.45rem .5rem;font-size:.85rem;font-weight:500;font-family:var(--font-body);border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.tuner-tab:first-child{border-radius:6px 0 0 6px}.tuner-tab:last-child{border-radius:0 6px 6px 0}.tuner-tab+.tuner-tab{border-left:none}.tuner-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.tuner-strings{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.25rem}.tuner-string{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;border:2px solid var(--border);font-size:.8rem;font-weight:600;color:var(--text-secondary);transition:border-color .2s,color .2s,background .2s}.tuner-string.active{border-color:var(--accent);color:var(--accent);background:#2f6fed14}.tuner-note-display{margin-bottom:1rem;min-height:4.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.tuner-note-name{font-size:3rem;font-weight:700;line-height:1.1;height:3.3rem;display:flex;align-items:baseline;justify-content:center;color:var(--text)}.tuner-note-name sub{font-size:1.2rem;font-weight:500;color:var(--text-secondary)}.tuner-note-waiting{color:var(--text-secondary);opacity:.4}.tuner-freq{font-size:.8rem;color:var(--text-secondary);margin-top:.15rem;transition:opacity .15s}.tuner-freq-hidden{opacity:0}.tuner-meter-wrap{margin-bottom:1rem}.tuner-meter{position:relative;height:8px;background:var(--bg);border-radius:4px;overflow:visible}.tuner-meter-center{position:absolute;left:50%;top:-3px;width:2px;height:14px;background:var(--text-secondary);transform:translate(-50%);border-radius:1px}.tuner-meter-needle{position:absolute;top:-6px;width:12px;height:20px;border-radius:6px;transform:translate(-50%);transition:left .12s ease-out,background .15s,opacity .15s}.tuner-meter-needle.meter-green{background:#16a34a}.tuner-meter-needle.meter-yellow{background:#eab308}.tuner-meter-needle.meter-red{background:#dc2626}.tuner-meter-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-secondary);margin-top:.35rem;padding:0 .25rem}.tuner-in-tune{font-size:.9rem;font-weight:600;color:#16a34a;margin-bottom:1rem;min-height:1.35rem;transition:opacity .15s}.tuner-in-tune-hidden{opacity:0}.tuner-mic-error{font-size:.85rem;color:#dc2626;margin-bottom:.75rem}.tuner-actions{margin-top:.5rem}.tuner-actions .btn{min-width:8rem}.btn-metronome{display:flex;align-items:center;gap:.2rem;padding:.25rem .4rem;border:none;background:none;border-radius:6px;cursor:pointer;color:var(--text-secondary);font-family:var(--font-body);font-size:.8rem;font-weight:600;transition:color .15s,background .15s}.btn-metronome:hover{color:var(--accent);background:var(--bg)}.btn-metronome.active{color:var(--accent)}.metronome-bpm{line-height:1}@keyframes metronome-pulse{0%{transform:scale(1)}30%{transform:scale(1.3)}to{transform:scale(1)}}.btn-metronome.metronome-beat{animation:metronome-pulse .15s ease-out}@media (max-width: 600px){.header{padding:.5rem 1rem}.song-link{flex-direction:column;align-items:flex-start;gap:.15rem}.chord-sheet{margin:0;padding:1.25rem .75rem;border-radius:0;--mobile-scale: .88}.chord-sheet .chord{font-size:calc(var(--chord-size) * var(--mobile-scale));letter-spacing:-.01em}.chord-sheet .lyrics{font-size:calc(var(--lyrics-size) * var(--mobile-scale));letter-spacing:-.02em}.chord-sheet .section-label{font-size:calc(var(--section-label-size) * var(--mobile-scale))}.chord-line{letter-spacing:-.015em}.section{margin-bottom:1.4rem}.zoom-toggle{display:none}.zoom-select{display:block}.transpose-label{font-size:.75rem;min-width:0}.form{padding:1rem}.setting-row{flex-direction:column;gap:.75rem}.setting-row .form-field[style],.setting-row .setting-group[style]{margin-left:0!important}.color-options{gap:.5rem}.color-swatch{width:2rem;height:2rem}.size-option{padding:.3rem .45rem;font-size:.75rem}.font-option{padding:.3rem .5rem;font-size:.78rem}.toggle-row{gap:.5rem}.toggle-hint{font-size:.75rem}}
