.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative}.login-page .theme-toggle{position:absolute;top:1rem;right:1rem}.login-form{display:flex;flex-direction:column;gap:1rem;width:280px;padding:2rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px}.login-form h1{margin:0 0 .5rem;font-size:1.25rem;text-align:center}.login-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--text-dim)}.login-form input{padding:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text)}.login-form button{padding:.6rem;background:var(--accent);border:none;border-radius:4px;color:#0b0d11;font-weight:600;cursor:pointer}.login-form button:disabled{opacity:.6;cursor:default}.login-error{color:var(--error);font-size:.85rem}.chart-view{max-width:1400px;margin:0 auto;padding:.6rem 1.1rem 1.25rem}.chart-header h1{margin:0;font-size:1.35rem;line-height:1.2}.chart-subtitle{color:var(--text-dim);font-size:.8rem;font-style:italic;margin-top:.1rem}.chart-credits{color:var(--text-dim);font-size:.82rem;margin-top:.15rem}.chart-meta-row{display:flex;gap:.9rem;margin-top:.3rem;color:var(--text-dim);font-size:.78rem}.chart-body{margin-top:.6rem;column-width:440px;column-gap:2.5rem}.section-block{margin-bottom:.7rem;break-inside:avoid;-webkit-column-break-inside:avoid}.section-label{text-transform:uppercase;font-size:.68rem;font-weight:700;letter-spacing:.04em;color:var(--accent);margin-bottom:.15rem}.section-note{display:flex;align-items:flex-start;gap:.35rem;font-size:.78rem;font-style:italic;color:var(--note);margin-bottom:.3rem}.section-note__icon{font-style:normal;line-height:1.3}.section-note--readonly{background:var(--note-bg);border-radius:4px;padding:.15rem .4rem}.section-note--editable input{flex:1;background:var(--note-bg);color:var(--note);border:1px dashed var(--note);border-radius:4px;padding:.15rem .4rem;font-size:.78rem;font-style:italic}.chord-line{display:flex;flex-wrap:wrap;align-items:flex-end}.chord-line--blank{width:100%}.segment{display:inline-block;position:relative;padding-top:calc(var(--chord-font-size) * 1.15);vertical-align:bottom}.segment .chord{position:absolute;top:0;left:0;font-size:var(--chord-font-size);font-weight:700;color:var(--accent);white-space:pre;line-height:1}.segment .lyric{display:inline-block;font-size:var(--lyric-font-size);white-space:pre-wrap;line-height:1.15}.footer-legal{margin-top:1.25rem;padding-top:.6rem;border-top:1px solid var(--border);font-size:.68rem;color:var(--text-dim);line-height:1.3;break-inside:avoid}:root,:root[data-theme=dark]{color-scheme:dark;--bg: #16181d;--bg-elevated: #1f232b;--text: #e8e9ec;--text-dim: #9aa0ab;--accent: #6aa6ff;--border: #2a2f38;--note: #e0b24d;--note-bg: #2a2410;--error: #ff6b6b}:root[data-theme=light]{color-scheme:light;--bg: #f6f7f9;--bg-elevated: #ffffff;--text: #1a1d23;--text-dim: #5b6270;--accent: #2458cf;--border: #dde1e7;--note: #8a5a00;--note-bg: #fdf3dd;--error: #c62828}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif}input,button,textarea{font-family:inherit}button{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.35rem .65rem;cursor:pointer;font-size:.85rem}button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}a{color:var(--accent)}.theme-toggle{padding:.3rem .5rem;font-size:.95rem;line-height:1}.notes-mode-toggle--active{background:var(--note-bg);border-color:var(--note);color:var(--note)}.app-header{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.4rem 1rem;background:var(--bg-elevated);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}.app-header__brand{font-weight:700;font-size:.9rem;text-decoration:none;color:var(--text);white-space:nowrap}.app-header__controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.app-header__user{margin-left:auto;display:flex;align-items:center;gap:.6rem}.app-header__username{color:var(--text-dim);font-size:.8rem}.library-page{max-width:900px;margin:0 auto;padding:1.25rem}.library-page__new{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.library-page__new h2{margin:0 0 .25rem;font-size:1rem}.library-page__new p{color:var(--text-dim);font-size:.85rem;margin:0 0 .6rem}.library-page__new textarea{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.5rem;resize:vertical}.library-page__new-actions{display:flex;gap:.6rem;margin-top:.6rem}.library-page h2{font-size:1rem}.library-page__empty{color:var(--text-dim);font-size:.9rem}.chart-list{list-style:none;padding:0;margin:0}.chart-list__item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}.chart-list__link{text-decoration:none;color:var(--text)}.chart-list__artist{color:var(--text-dim);font-weight:400}.chart-list__actions{display:flex;align-items:center;gap:1rem}.chart-page{padding-bottom:1.5rem}.chart-edit-page{display:grid;grid-template-columns:1fr 1fr;gap:0;height:calc(100vh - 49px)}.chart-edit-page__source{background:var(--bg-elevated);color:var(--text);border:none;border-right:1px solid var(--border);padding:1rem;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:.85rem;resize:none;outline:none}.chart-edit-page__preview{overflow-y:auto}@media (max-width: 900px){.chart-edit-page{grid-template-columns:1fr;height:auto}.chart-edit-page__source{height:40vh;border-right:none;border-bottom:1px solid var(--border)}}.font-size-controls{display:flex;gap:1rem}.font-size-controls label{display:flex;flex-direction:column;font-size:.7rem;color:var(--text-dim);gap:.1rem}.transpose-controls{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.transpose-controls button{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;width:1.6rem;height:1.6rem;cursor:pointer;padding:0}.transpose-controls button:hover{border-color:var(--accent)}
