:root{--primary-color: #6200ea;--primary-hover: #3700b3;--secondary-color: #03dac6;--background-color: #121212;--surface-color: #1e1e1e;--text-primary: #ffffff;--text-secondary: #b0b0b0;--border-color: #333333;--error-color: #cf6679;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "Fira Code", "Courier New", monospace;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px}@media (prefers-color-scheme: light){:root{--background-color: #f5f5f5;--surface-color: #ffffff;--text-primary: #121212;--text-secondary: #666666;--border-color: #e0e0e0}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--background-color);color:var(--text-primary);height:100vh;overflow:hidden}#app{display:flex;height:100%}#sidebar{width:300px;background-color:var(--surface-color);border-right:1px solid var(--border-color);display:flex;flex-direction:column;padding:var(--spacing-md);position:relative}.sidebar-header{margin-bottom:var(--spacing-md)}.search-container input{width:100%;padding:var(--spacing-sm);border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-primary)}#song-list{list-style:none;overflow-y:auto;flex-grow:1;margin-top:var(--spacing-md)}#song-list li{padding:var(--spacing-sm);cursor:pointer;border-radius:var(--radius-sm)}#song-list li:hover{background-color:var(--border-color)}.fab{position:absolute;bottom:var(--spacing-md);right:var(--spacing-md);width:56px;height:56px;border-radius:50%;background-color:var(--primary-color);color:#fff;border:none;font-size:24px;cursor:pointer;box-shadow:0 4px 6px #0000004d}#main-content{flex-grow:1;position:relative;overflow:hidden}.screen{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--background-color);display:none;flex-direction:column}.screen.active{display:flex}#welcome-screen{flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:#666}.welcome-content{max-width:400px;padding:2rem}.welcome-icon{margin-bottom:1.5rem;color:#cbd5e1}.welcome-icon svg{width:80px;height:80px}#welcome-screen h2{font-size:1.5rem;font-weight:600;color:#1e293b;margin-bottom:.5rem}#welcome-screen p{font-size:1rem;color:#64748b;line-height:1.5}.top-bar{height:60px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md);background-color:var(--surface-color)}.song-content{padding:var(--spacing-xl);overflow-y:auto;flex-grow:1;font-size:18px;line-height:1.6}.song-metadata{margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-sm)}.song-artist{font-size:1.1rem;color:#64748b;margin-bottom:4px}.song-capo{font-size:1rem;font-weight:600;color:var(--primary-color);background-color:#f1f5f9;padding:4px 8px;border-radius:var(--radius-sm);display:inline-block}.chord-line{display:flex;flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--spacing-sm)}.lyric-part{display:flex;flex-direction:column}.chord{font-weight:700;color:var(--primary-color);font-size:.9em;min-height:1.2em}.lyric{white-space:pre}.editor-pane{flex-grow:1;display:none;overflow-y:auto}.editor-pane.active{display:block}#code-editor-textarea{width:100%;height:100%;background-color:var(--surface-color);color:var(--text-primary);border:none;padding:var(--spacing-md);font-family:var(--font-mono);font-size:16px;resize:none}#visual-editor-canvas{padding:var(--spacing-xl);min-height:100%}.toolbar{padding:var(--spacing-sm);background-color:var(--surface-color);border-bottom:1px solid var(--border-color)}.chord-palette{display:flex;flex-wrap:nowrap;gap:var(--spacing-sm);overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.draggable-chord{flex-shrink:0;padding:4px 8px;background-color:var(--surface-color);border:1px solid var(--primary-color);border-radius:var(--radius-sm);cursor:grab;color:var(--primary-color);font-weight:700}.btn-primary,.btn-secondary,.btn-small{padding:8px 16px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-weight:600}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-secondary{background-color:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.mobile-only{display:none}.auth-area{margin-top:var(--spacing-sm);border-top:1px solid var(--border-color);padding-top:var(--spacing-sm)}.user-info{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);font-size:.9rem;color:var(--text-primary)}.user-info #user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.btn-link{background:none;border:none;color:var(--primary-color);cursor:pointer;font-weight:600;padding:4px}.editor-only[hidden]{display:none!important}.modal[hidden]{display:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#00000080}.modal-card{position:relative;background-color:var(--surface-color);color:var(--text-primary);padding:var(--spacing-lg);border-radius:var(--radius-md, 8px);min-width:320px;max-width:90vw;display:flex;flex-direction:column;gap:var(--spacing-sm);box-shadow:0 10px 25px #00000040}.modal-card h3{margin-bottom:var(--spacing-sm)}.modal-card label{display:flex;flex-direction:column;gap:4px;font-size:.9rem}.modal-card input{padding:8px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--background-color);color:var(--text-primary);font-size:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.form-error{color:#b91c1c;font-size:.9rem}@media (max-width: 768px){#sidebar{position:absolute;z-index:100;height:100%;transform:translate(-100%);transition:transform .3s ease}#sidebar.open{transform:translate(0)}.mobile-only{display:block}#menu-btn{position:fixed;top:10px;left:10px;z-index:50;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:8px 12px;font-size:18px;cursor:pointer;color:var(--text-primary);line-height:1}#menu-btn.hidden{display:none}#sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;z-index:99}#sidebar-overlay.visible{display:block}#song-view-screen .top-bar{height:auto;flex-wrap:wrap;padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-xs)}.top-bar-title{display:flex;align-items:center;gap:var(--spacing-sm);flex:1 1 100%;min-width:0}.top-bar-title h2{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#song-view-screen .top-bar .actions{flex:1 1 100%;justify-content:flex-end}}.editor-line-row{display:flex;flex-wrap:wrap;margin-bottom:var(--spacing-md);align-items:flex-end}.editor-part-container{display:flex;flex-direction:column;min-width:10px}.chord-slot{min-height:30px;background-color:#ffffff0d;border:1px dashed var(--border-color);border-radius:var(--radius-sm);margin-bottom:4px;display:flex;align-items:center;justify-content:center}.chord-slot .draggable-chord{cursor:grab;background-color:var(--surface-color);border:1px solid var(--primary-color);padding:2px 6px;border-radius:var(--radius-sm);font-size:.8em}.editor-metadata{display:grid;grid-template-columns:2fr 2fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.editor-metadata .form-group{display:flex;flex-direction:column}.editor-metadata label{font-size:.85rem;color:#64748b;margin-bottom:4px}.editor-metadata input{width:100%;padding:8px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:1rem;background-color:var(--background-color);color:var(--text-primary)}@media (max-width: 768px){.editor-metadata{grid-template-columns:1fr}}.lyric-input{min-width:20px;padding:2px 4px;border-radius:4px;cursor:text;outline:none}.lyric-input:focus{border-bottom:1px solid var(--primary-color)}
