@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-condensed-cyrillic-ext-wght-normal-DhztH7TG.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-condensed-cyrillic-wght-normal-DcSt-2BC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-condensed-greek-ext-wght-normal-CuKbLwpm.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-condensed-greek-wght-normal-Cvhr4n9Q.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-condensed-vietnamese-wght-normal-BQ3qeiTz.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-condensed-latin-ext-wght-normal-Db2M7toj.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}@font-face{font-family:Roboto Condensed Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/roboto-condensed-latin-wght-normal-Cxzi1x1i.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}html,body,#root{height:100%;margin:0;padding:0}:root{--bg-primary:#fff;--bg-secondary:#f5f5f5;--text-primary:#1a1a2e;--text-secondary:#666;--accent:#4361ee;--accent-hover:#3a56d4;--accent-alpha:#4361ee1f;--border:#e0e0e0;--danger:#e63946}[data-theme=dark]{--bg-primary:#121212;--bg-secondary:#1e1e1e;--text-primary:#eee;--text-secondary:#aaa;--accent:#4cc9f0;--accent-hover:#3db8df;--accent-alpha:#4cc9f026;--border:#333;--danger:#ff6b6b}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Roboto Condensed Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;width:100%;height:100%;display:flex}.loading{height:100%;color:var(--text-secondary);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.song-list-container{flex-direction:column;height:100%;display:flex}.song-list-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:12px}.search-bar{align-items:center;gap:8px;display:flex}.search-field-select{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:8px;padding:10px 8px;font-size:16px}.search-input-wrap{flex:1;min-width:0;position:relative}.search-input{border:1px solid var(--border);background:var(--bg-primary);width:100%;min-width:0;color:var(--text-primary);border-radius:8px;flex:1;padding:10px 44px 10px 14px;font-size:16px}.search-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.search-clear-btn{width:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:22px;line-height:1;display:flex;position:absolute;top:0;bottom:0;right:0}.search-clear-btn:hover{color:var(--text-primary)}.search-input:focus{border-color:var(--accent);outline:none}.song-list-content{flex:1;display:flex;position:relative;overflow:hidden}.song-list-scroll{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:80px;padding-left:28px;overflow-y:auto}.letter-header{color:var(--accent);background:var(--bg-secondary);z-index:1;padding:8px 16px;font-size:14px;font-weight:600;position:sticky;top:0}.song-item{text-align:left;border:none;border-bottom:1px solid var(--border);background:var(--bg-primary);width:100%;color:var(--text-primary);cursor:pointer;padding:14px 16px;transition:background .15s;display:block}.song-item:hover{background:var(--bg-secondary)}.song-item-row{border-bottom:1px solid var(--border);align-items:stretch;display:flex}.song-item-row .song-item{border-bottom:none;flex:1}.curate-btn{border:none;border-left:1px solid var(--border);background:var(--bg-primary);width:40px;color:var(--text-secondary);cursor:pointer;font-size:18px;transition:background .15s,color .15s}.curate-btn:hover{background:var(--bg-secondary)}.curate-btn.curated{color:var(--accent);background:var(--accent-alpha)}.curated-clear-btn{border:1px solid var(--accent);background:var(--accent-alpha);color:var(--accent);cursor:pointer;border-radius:4px;padding:4px 10px;font-size:12px}.curated-clear-btn:hover{background:var(--accent);color:#fff}.curated-header{align-items:center;gap:8px;display:flex}.curated-title{color:var(--text-primary);text-align:center;flex:1;font-size:15px;font-weight:600}.back-button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px}.back-button:hover{background:var(--bg-secondary)}.song-list-scroll.no-indent{padding-left:0}.curated-row{align-items:stretch}.drag-handle{border:none;border-right:1px solid var(--border);background:var(--bg-primary);width:32px;color:var(--text-secondary);letter-spacing:-2px;cursor:grab;touch-action:none;justify-content:center;align-items:center;font-size:12px;display:flex}.drag-handle:active{cursor:grabbing}.curated-row.dragging{background:var(--bg-secondary);border:1px solid var(--accent)}.song-title{color:var(--text-primary);font-size:16px;font-weight:500}.song-author{color:var(--text-secondary);margin-top:2px;font-size:13px}.empty-state{text-align:center;color:var(--text-secondary);padding:40px}.alphabet-nav{z-index:10;flex-direction:column;gap:1px;display:flex;position:absolute;top:50%;left:4px;transform:translateY(-50%)}.alphabet-letter{width:22px;height:22px;color:var(--accent);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.alphabet-letter:hover{background:var(--accent);color:#fff;border-radius:50%}.song-list-footer{background:var(--bg-secondary);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.footer-left{flex:1;align-items:center;gap:8px;display:flex}.footer-right{align-items:center;gap:8px;display:flex}.theme-toggle-button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:6px;display:flex}.theme-toggle-button:hover{background:var(--bg-secondary)}.admin-info{align-items:center;gap:8px;display:flex}.admin-email{color:var(--text-secondary);font-size:12px}.login-button,.logout-button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px}.login-button:hover,.logout-button:hover{background:var(--bg-secondary)}.sync-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 20px;font-size:14px}.sync-button:hover:not(:disabled){background:var(--accent-hover)}.sync-button:disabled{opacity:.6;cursor:not-allowed}.fab{background:var(--accent);color:#fff;cursor:pointer;z-index:100;border:none;border-radius:50%;width:56px;height:56px;font-size:28px;position:fixed;bottom:80px;right:20px;box-shadow:0 4px 12px #0003}.fab:hover{background:var(--accent-hover)}.song-viewer{flex-direction:column;height:100%;display:flex}.song-viewer-content{-webkit-overflow-scrolling:touch;flex:1;padding:24px 16px 82px;line-height:1;overflow:hidden auto}.song-viewer-content .song-viewer-header{margin-bottom:24px}.song-viewer-content .song-title{overflow-wrap:break-word;margin-bottom:2px;font-size:1.5em;font-weight:700}.song-viewer-content .song-author{color:var(--text-secondary);overflow-wrap:break-word;font-size:.9em}.chord-sheet{white-space:pre;font-family:Roboto Condensed Variable,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.chord-sheet.two-column{column-count:2;column-gap:24px}.chord-sheet.two-column .song-line{break-inside:avoid}.song-line{min-height:1em;line-height:1}.blank-line{height:1em}.chord-line{position:relative}.chord-layer{height:1em;line-height:1;position:relative}.chord{color:var(--accent);white-space:pre;font-weight:600;position:absolute}.lyric-layer{white-space:pre}.song-viewer-bar{background:var(--bg-secondary);border-top:1px solid var(--border);z-index:50;justify-content:center;align-items:center;gap:2px;padding:6px 4px;display:flex;position:fixed;bottom:0;left:0;right:0}.bar-spacer{flex:auto}.bar-button{max-width:40px;height:40px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:32px;justify-content:center;align-items:center;display:flex}[data-theme=dark] .bar-button{color:#fff}.bar-button:hover{background:var(--border)}.bar-button:disabled{opacity:.3;cursor:not-allowed}.transpose-label{color:var(--text-primary);text-align:center;flex:none;min-width:24px;max-width:24px;font-size:13px;font-weight:600}[data-theme=dark] .transpose-label{color:#fff}.song-editor{flex-direction:column;height:100%;display:flex;overflow-y:auto}.editor-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.editor-header button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:8px 16px}.editor-header h2{font-size:18px}.editor-header .cancel-button,.modal-actions .cancel-button{color:var(--danger);border-color:var(--danger);background:0 0}.editor-header .save-button{background:var(--accent);color:#fff;border-color:var(--accent)}.editor-fields{flex-direction:column;gap:12px;padding:16px;display:flex}.editor-input{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;padding:10px 14px;font-size:16px}.editor-section{border-top:1px solid var(--border);padding:16px}.editor-section h3{color:var(--text-secondary);margin-bottom:8px;font-size:14px}.editor-hint{color:var(--text-secondary);margin-bottom:12px;font-size:12px}.import-textarea{border:1px solid var(--border);tab-size:4;resize:vertical;background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:6px;padding:12px;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,Courier New,monospace;font-size:13px;line-height:1.4}.import-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.spacing-stepper{color:var(--text-secondary);align-items:center;gap:4px;font-size:13px;display:flex}.spacing-stepper button{border:1px solid var(--border);background:var(--bg-primary);width:28px;height:28px;color:var(--text-primary);cursor:pointer;border-radius:3px;padding:0;font-size:16px;line-height:1}.spacing-stepper button:hover{border-color:var(--text-secondary)}.spacing-stepper input[type=number]{border:1px solid var(--border);background:var(--bg-primary);width:58px;color:var(--text-primary);text-align:center;border-radius:3px;padding:4px 6px;font-size:13px}.import-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 20px}.bulk-import-label{background:var(--bg-primary);border:1px solid var(--border);cursor:pointer;color:var(--text-primary);border-radius:6px;padding:10px 20px;font-size:14px;display:inline-block}.bulk-import-label:hover{background:var(--bg-secondary)}.bulk-import-input{display:none}.bulk-result{background:var(--accent-alpha);color:var(--accent);border-radius:6px;margin-top:8px;padding:8px 12px;font-size:14px}.visual-editor{border:1px solid var(--border);border-radius:6px;overflow:hidden}.visual-line{border-bottom:1px solid var(--border);grid-template-columns:44px 1fr;display:grid}.visual-line:last-child{border-bottom:none}.visual-delete-cell{border:none;border-right:1px solid var(--border);background:var(--bg-secondary);color:var(--danger);cursor:pointer;justify-content:center;align-items:center;font-size:20px;display:flex}.visual-delete-cell:hover{background:var(--bg-primary);color:var(--danger)}.visual-blank{color:var(--text-secondary);justify-content:center;align-items:center;padding:8px 12px;font-style:italic;display:flex}.blank-indicator{opacity:.4;margin-right:8px}.visual-lyric-line{padding:8px 12px}.visual-chord-row{min-height:22px;margin-bottom:2px;font-family:Roboto Condensed Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:22px;position:relative}.visual-chord{color:var(--accent);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;white-space:nowrap;border-radius:3px;padding:0 2px;font-weight:600;position:absolute;top:0}.visual-chord:hover{background:var(--accent-alpha)}.visual-chord:active{cursor:grabbing}.add-chord-inline-btn{text-align:center;border:1px dashed var(--accent);background:var(--bg-primary);width:20px;height:20px;color:var(--accent);cursor:pointer;border-radius:3px;padding:0;font-size:14px;line-height:18px;position:absolute;top:0;right:0}.add-chord-inline-btn:hover{color:var(--accent);border-color:var(--accent)}.visual-lyric-input{width:100%;color:var(--text-primary);background:0 0;border:none;padding:4px 0;font-family:Roboto Condensed Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.4}.visual-lyric-input:focus{outline:none}.visual-lyric-input::placeholder{color:var(--text-secondary);opacity:.5}.line-actions-inline{justify-content:center;gap:4px;margin-top:4px;display:flex}.line-actions-inline button{border:1px solid var(--border);background:var(--bg-primary);cursor:pointer;color:var(--text-secondary);border-radius:3px;padding:2px 6px;font-size:11px}.line-actions-inline button:hover{color:var(--text-primary);border-color:var(--text-secondary)}.style-toggle{font-weight:700}.style-toggle i{font-style:italic}.style-toggle.active{background:var(--accent);color:#fff;border-color:var(--accent)}.style-toggle.active:hover{color:#fff;border-color:var(--accent)}.add-line-btn{border:1px dashed var(--border);width:100%;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;margin-top:4px;padding:10px;font-size:13px;display:block}.add-line-btn:hover{background:var(--bg-secondary)}.danger-zone{padding-top:24px}.delete-button{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:12px;font-size:14px}.error-message{color:var(--danger);background:#ffebee;border-radius:6px;margin:12px 16px;padding:10px 16px;font-size:14px}[data-theme=dark] .error-message{background:#3d1f1f}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-primary);border-radius:12px;width:90%;max-width:320px;padding:24px;box-shadow:0 8px 32px #0003}.modal-content h3{text-align:center;margin:0 0 16px;font-size:18px}.modal-fields{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.modal-field label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;display:block}.modal-field input{border:1px solid var(--border);background:var(--bg-secondary);width:100%;color:var(--text-primary);border-radius:6px;padding:10px 12px;font-family:SF Mono,Cascadia Code,Fira Code,Consolas,Courier New,monospace;font-size:16px}.modal-actions{justify-content:space-between;align-items:center;display:flex}.modal-right-actions{gap:8px;display:flex}.modal-actions button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:14px}.modal-save-btn{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.modal-delete-btn{color:var(--danger)!important;border-color:var(--danger)!important;background:0 0!important}.login-container{justify-content:center;align-items:center;height:100%;padding:20px;display:flex}.login-form{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.login-form h2{text-align:center;margin-bottom:8px}.login-form input{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;padding:12px;font-size:16px}.login-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:12px;font-size:16px}.login-form button:hover:not(:disabled){background:var(--accent-hover)}.login-form .cancel-button{border:1px solid var(--border);color:var(--text-primary);background:0 0}.login-form .cancel-button:hover{background:var(--bg-secondary)}@media (width>=768px){.song-viewer-content{padding:32px 32px 82px}}@media (width<=549px){.song-list-header{padding:8px 12px}.search-field-select{padding:8px 6px;font-size:14px}.search-input{padding:8px 10px;font-size:14px}.letter-header{padding:4px 12px;font-size:12px}.song-item{padding:10px 12px}.curate-btn{width:34px;font-size:16px}.song-list-footer{padding:8px 12px}.song-viewer-content{padding:16px 12px 82px;line-height:1}.song-viewer-content .song-viewer-header{margin-bottom:12px}.song-viewer-content .song-title{margin-bottom:2px}.song-viewer-content .song-author{margin-bottom:0}.song-line{min-height:1em}.blank-line,.chord-layer{height:1em}.song-viewer-bar{gap:2px;padding:6px 8px}.bar-button{width:34px;height:34px}.editor-header{padding:10px 12px}.editor-fields{gap:8px;padding:12px}.editor-input{padding:8px 10px;font-size:14px}.editor-section{padding:12px}.visual-lyric-line{padding:6px 10px}.line-actions-inline{gap:2px;margin-top:2px}}.print-root{color:#000;z-index:100;background:#fff;width:624px;position:fixed;top:0;left:-10000px}.print-title{color:#000;margin:0 0 4px;font-size:27px;font-weight:700;line-height:1.2}.print-author{color:#333;margin:0 0 16px;font-size:11px;font-style:italic}.print-sheet{white-space:pre;color:#000;font-family:Roboto Condensed Variable,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.2}.print-sheet.two-column{column-count:2;column-gap:24px}.print-sheet .song-line,.print-sheet .blank-line{break-inside:avoid;line-height:1.2}.print-sheet .lyric-layer,.print-sheet .chord{color:#000}@media print{@page{size:letter;margin:1in}.app{display:none!important}html,body,#root{height:auto;overflow:visible!important}.print-root{position:static;top:auto;left:auto}}
