:root{--bg-primary:#0d0d0d;--bg-surface:#1a1a1a;--bg-surface-variant:#252525;--text-primary:#f0e6d3;--text-secondary:#a89f8c;--accent-primary:#e07020;--accent-secondary:#22d3ee;--success:#4ade80;--error:#ef4444;--color-chord:#f59e0b;--color-tab:#22d3ee;--color-lyric:#a78bfa;--color-section:#4ade80;--color-metadata:#94a3b8;--color-timestamp:#6b7280;--color-comment:#16a34a;--color-timing:#64748b;--color-strum:#5b5728;--color-fret:#38bdf8;--color-bar-line:#475569;--color-technique:#f472b6;--editor-chord:var(--color-chord,#f59e0b);--editor-tablature:var(--color-tab,#22d3ee);--editor-lyric:var(--color-lyric,#a78bfa);--editor-section:var(--color-section,#4ade80);--editor-metadata:var(--color-metadata,#94a3b8);--editor-timestamp:var(--color-timestamp,#6b7280);--editor-comment:var(--color-comment,#16a34a);--player-bg:#1f2937;--player-accent:#3b82f6;--player-surface:#374151;--header-height:56px;--player-bar-height:100px;--drawer-width:280px}[data-theme=light]{--bg-primary:#fafafa;--bg-surface:#fff;--bg-surface-variant:#f5f5f5;--text-primary:#1a1a1a;--text-secondary:#6b6459;--accent-primary:#e07020;--accent-secondary:#0891b2;--success:#16a34a;--error:#dc2626}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-surface)}::-webkit-scrollbar-thumb{background:var(--bg-surface-variant);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.hidden{display:none!important}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,Fira Code,Consolas,monospace}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-secondary{background:var(--bg-surface-variant);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--player-surface)}.btn-icon{cursor:pointer;width:40px;height:40px;color:var(--text-primary);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .2s;display:flex}.btn-icon:hover:not(:disabled){background:var(--bg-surface-variant)}.btn-icon.active{color:var(--accent-primary)}.icon{background-position:50%;background-repeat:no-repeat;background-size:contain;width:24px;height:24px;display:inline-block}input,select,textarea{background:var(--bg-surface);border:1px solid var(--bg-surface-variant);color:var(--text-primary);border-radius:8px;width:100%;padding:10px 14px;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--accent-primary);outline:none}.card{background:var(--bg-surface);border-radius:12px;padding:16px}.dialog{background:var(--bg-surface);border-radius:16px;width:100%;max-width:400px;max-height:80vh;padding:24px;overflow-y:auto}.dialog-title{margin-bottom:16px;font-size:20px;font-weight:600}.dialog-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.toast{bottom:calc(var(--player-bar-height) + 16px);background:var(--bg-surface);z-index:2000;border-radius:8px;padding:12px 24px;animation:.3s toast-in;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0000004d}@keyframes toast-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}input[type=range]{appearance:none;background:var(--player-surface);cursor:pointer;border-radius:2px;height:4px;padding:0}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--player-accent);cursor:pointer;border-radius:50%;width:16px;height:16px}input[type=range]::-moz-range-thumb{background:var(--player-accent);cursor:pointer;border:none;border-radius:50%;width:16px;height:16px}.dropdown{position:relative}.dropdown-menu{background:var(--bg-surface);z-index:100;border-radius:8px;min-width:180px;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 4px 20px #0000004d}.dropdown-item{cursor:pointer;align-items:center;gap:12px;padding:12px 16px;transition:background .2s;display:flex}.spinner{border:3px solid var(--bg-surface-variant);border-top-color:var(--accent-primary);border-radius:50%;width:32px;height:32px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.empty-state svg{opacity:.5;width:64px;height:64px;margin-bottom:16px}.list-item{cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;transition:background .2s;display:flex}.list-item:hover{background:var(--bg-surface-variant)}.list-item-icon{flex-shrink:0;width:24px;height:24px}.list-item-content{flex:1;min-width:0}.list-item-title{font-weight:500}.list-item-subtitle{color:var(--text-secondary);font-size:12px}@media (width<=600px){:root{--header-height:48px;--player-bar-height:80px}}@media (orientation:landscape) and (height<=500px){:root{--header-height:44px;--player-bar-height:60px}}#app{width:100%;height:100%;position:relative;overflow:hidden}.loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:24px;height:100%;display:flex}.loading-logo{width:80px;height:80px;animation:2s ease-in-out infinite pulse}.loading-spinner{border:3px solid var(--bg-surface-variant);border-top-color:var(--accent-primary);border-radius:50%;width:32px;height:32px;animation:1s linear infinite spin}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.drawer-overlay{z-index:50;pointer-events:none;background:0 0;transition:background .3s;position:fixed;inset:0}.drawer-overlay.open{pointer-events:auto;background:#00000080}.drawer{width:var(--drawer-width);background:var(--bg-surface);z-index:60;flex-direction:column;transition:transform .3s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:4px 0 20px #0000004d}.drawer.open{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--bg-surface-variant);align-items:center;gap:16px;padding:24px 16px;display:flex}.drawer-logo{width:48px;height:48px}.drawer-logo img{width:100%;height:100%;display:block}.drawer-header h2{font-size:20px;font-weight:600}.drawer-content{flex:1;padding:8px 0;overflow-y:auto}.drawer-item{color:var(--text-primary);cursor:pointer;align-items:center;gap:16px;padding:14px 20px;text-decoration:none;transition:background .2s;display:flex}.drawer-item:hover{background:var(--bg-surface-variant)}.drawer-item.active{color:var(--accent-primary);background:#e070201a}.drawer-icon{justify-content:center;align-items:center;width:24px;height:24px;display:flex}.drawer-icon svg{width:24px;height:24px}.drawer-divider{background:var(--bg-surface-variant);height:1px;margin:8px 16px}.drawer-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);padding:16px 20px 8px;font-size:12px;font-weight:600}.drawer-footer{padding:18px 16px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));justify-content:center;display:flex}.bmc-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:100%;height:auto;padding:0;display:flex;text-decoration:none!important}.bmc-btn-image{width:60%;height:auto;display:block}.bmc-btn:hover .bmc-btn-image{filter:brightness(.95)}.screen-container{width:100%;height:100%;position:relative;overflow:hidden}player-bar{z-index:40;position:fixed;bottom:0;left:0;right:0}player-bar.hidden{display:none}.player-screen{padding-bottom:calc(var(--player-bar-height) + 12px);position:relative}.player-screen>player-bar{z-index:40;position:absolute;bottom:12px;left:0;right:0}@supports (padding:env(safe-area-inset-bottom)){player-bar{padding-bottom:env(safe-area-inset-bottom)}.drawer{padding-top:env(safe-area-inset-top)}}.dialog-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.dialog-overlay.open{display:flex}.dialog{color:#efe7df;background:#2b2730;border-radius:28px;width:100%;max-width:420px;max-height:90vh;overflow:auto;box-shadow:0 20px 60px #0009}.dialog-header{padding:24px 24px 0}.dialog-header h2{margin:0 0 12px;font-size:26px;font-weight:700}.dialog-content{padding:12px 24px 8px}.dialog-actions{justify-content:flex-end;gap:12px;padding:12px 24px 20px;display:flex}.dialog-btn{cursor:pointer;background:0 0;border:none;border-radius:12px;padding:12px 18px;font-size:14px;font-weight:700}.dialog-btn.secondary{color:var(--accent-primary)}.dialog-btn.secondary:hover{background:#ffffff0d}.dialog-btn.primary{background:var(--accent-primary);color:#fffffff2}.dialog-btn.primary:hover{filter:brightness(1.1)}.dialog-btn.primary:disabled{opacity:.4;cursor:default}.dialog-btn.danger{color:var(--error)}.dialog-btn.danger:hover{background:#ef44441a}.form-group{margin-bottom:16px}.form-label{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:600;display:block}.form-input,.form-textarea,.form-select{width:100%;color:inherit;box-sizing:border-box;background:#ffffff08;border:1px solid #ffffff0d;border-radius:12px;padding:12px 14px;font-size:14px}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent-primary);outline:none}.form-textarea{resize:vertical;min-height:100px;font-family:inherit}.form-select{cursor:pointer}.form-hint{color:var(--text-secondary);margin-top:4px;font-size:12px}.icon-grid,.color-grid{flex-wrap:wrap;gap:8px;padding:8px 0;display:flex}.icon-btn{cursor:pointer;background:#ffffff08;border:2px solid #0000;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.icon-btn:hover{background:#ffffff0f}.icon-btn.selected{border-color:var(--accent-primary);background:#e070201a}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:8px;width:36px;height:36px;transition:transform .15s}.color-swatch:hover{transform:scale(1.1)}.color-swatch.selected{box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px currentColor}.dialog-divider{background:#ffffff14;height:1px;margin:12px 0}.dialog-info-section{margin-bottom:16px}.dialog-info-section-title{color:var(--accent-primary);margin-bottom:8px;font-size:14px;font-weight:600}.dialog-info-row{justify-content:space-between;padding:4px 0;font-size:14px;display:flex}.dialog-info-row .label{color:var(--text-secondary)}.dialog-info-row .value{font-weight:500}.chord-chips{flex-wrap:wrap;gap:8px;display:flex}.chord-chip{color:var(--color-chord);background:#f59e0b26;border-radius:6px;padding:4px 10px;font-size:14px;font-weight:600}.strumming-pattern{background:#ffffff08;border-radius:8px;padding:12px}.strumming-pattern-text{letter-spacing:4px;margin-bottom:8px;font-family:monospace;font-size:18px;font-weight:700}.strumming-legend{color:var(--text-secondary);gap:16px;font-size:12px;display:flex}.song-structure{color:var(--color-section);font-size:14px}.dialog-option{cursor:pointer;background:#ffffff05;border-radius:12px;align-items:center;gap:12px;margin-bottom:12px;padding:14px;transition:background .12s,transform .12s;display:flex}.dialog-option:hover{background:#ffffff0b;transform:translateY(-2px)}.dialog-option.selected{background:#e070201a;border:1px solid #e070204d}.dialog-option.disabled{opacity:.4;pointer-events:none}.dialog-option.danger .option-title{color:var(--error)}.dialog-option .option-icon{background:#ffffff08;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex;box-shadow:inset 0 -2px #0000000f}.dialog-option .option-text{flex:1}.dialog-option .option-title{margin-bottom:4px;font-size:15px;font-weight:700}.dialog-option .option-sub{color:var(--text-secondary);font-size:13px;line-height:1.2}.dialog-option.danger{background:#ef44440a}.dialog-option.danger .option-icon{background:#ef444414}.dialog-option .option-arrow{color:var(--text-secondary)}.edit-tab-container{flex-direction:column;gap:12px;display:flex}.edit-tab-info{color:var(--text-secondary);margin:0;font-size:14px}.edit-tab-info strong{color:var(--text-primary)}.edit-tab-textarea{background:var(--bg-surface-variant);width:100%;min-height:300px;max-height:50vh;color:var(--text-primary);border:1px solid var(--border-subtle);resize:vertical;white-space:pre;overflow-wrap:normal;border-radius:8px;padding:12px;font-family:Courier New,Consolas,monospace;font-size:14px;line-height:1.5;overflow-x:auto}.edit-tab-textarea:focus{border-color:var(--accent-primary);outline:none}.edit-tab-hint{color:var(--text-secondary);margin:0;font-size:12px}.toggle-row{justify-content:space-between;align-items:center;padding:8px 0;display:flex}.toggle-switch{background:var(--bg-surface-variant);cursor:pointer;border-radius:14px;width:48px;height:28px;transition:background .2s;position:relative}.toggle-switch.on{background:var(--accent-primary)}.toggle-switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:4px;left:4px}.toggle-switch.on:after{transform:translate(20px)}.toast-container{z-index:2000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}.toast{background:var(--bg-surface);color:var(--text-primary);pointer-events:auto;border-radius:12px;padding:12px 20px;font-size:14px;font-weight:500;animation:.3s ease-out toast-in;box-shadow:0 8px 24px #0006}.toast.success{color:var(--success);background:#4ade8026;border:1px solid #4ade804d}.toast.error{color:var(--error);background:#ef444426;border:1px solid #ef44444d}.toast.fade-out{animation:.3s ease-in forwards toast-out}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.slider-row{align-items:center;gap:12px;padding:8px 0;display:flex}.slider-row label{flex:1}.slider-row input[type=range]{background:var(--bg-surface-variant);appearance:none;cursor:pointer;border-radius:2px;flex:2;height:4px}.slider-row input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent-primary);cursor:grab;border-radius:50%;width:20px;height:20px}.slider-row .slider-value{text-align:right;min-width:50px;color:var(--text-secondary)}.dropdown-menu{background:var(--bg-surface);z-index:1500;border-radius:12px;min-width:180px;padding:8px;position:fixed;box-shadow:0 12px 40px #00000080}.dropdown-item{cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:12px;font-size:14px;transition:background .15s;display:flex}.dropdown-item:hover{background:#ffffff0d}.dropdown-item.danger{color:var(--error)}.dropdown-item .icon svg{width:18px;height:18px}.dropdown-divider{background:#ffffff14;height:1px;margin:6px 0}.fuzzy-match{color:var(--accent-primary)}