:root{--bg:#f5f5f3;--card:#fff;--text:#171717;--muted:#676767;--line:#ddd;--accent:#111;--danger:#a00;--ok:#176b2c;--song-size:1.35rem}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:#111;color:#fff;position:sticky;top:0;z-index:20}.brand{font-weight:800;color:#fff;text-decoration:none}.topbar nav{display:flex;gap:16px;flex-wrap:wrap}.topbar nav a{color:#fff;text-decoration:none}.container{max-width:1180px;margin:0 auto;padding:24px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:18px}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}h1,h2,h3{margin-top:0}.muted{color:var(--muted)}a.button,button,.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:999px;background:var(--accent);color:#fff;padding:10px 15px;font-weight:700;text-decoration:none;cursor:pointer}.button.secondary,button.secondary{background:#e5e5e5;color:#111}.button.danger{background:#8b0000}.actions{display:flex;gap:8px;flex-wrap:wrap}.song-list{display:grid;gap:10px}.song-row{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(90px,.65fr)) auto;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px}.song-title{font-weight:800}.preview{font-size:.9rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-actions{display:flex;gap:6px}.icon-button{width:42px;height:42px;padding:0;font-size:1.1rem}.stars{letter-spacing:1px}.stars button{background:transparent;color:#999;padding:2px;font-size:1.25rem}.stars button.active{color:#e0a000}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #bbb;border-radius:10px;background:#fff;color:#111;font:inherit}label{display:block;font-weight:700;margin-bottom:5px}.field{margin-bottom:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{border-bottom:1px solid #ddd;text-align:left;padding:10px}.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px}.flash.success{background:#ddf4e3;color:#155d2a}.flash.error{background:#fde2e2;color:#8b0000}.flash.info{background:#e6efff;color:#194a8d}.badge{display:inline-block;border-radius:999px;padding:4px 8px;background:#eee;font-size:.85rem}.player-page{background:#111;color:#fff}.player-page .container{max-width:none;padding:18px 28px}.player-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.player-controls{position:sticky;top:0;display:flex;gap:8px;flex-wrap:wrap;background:#111;padding:8px 0 14px;z-index:10}.player-controls button,.player-controls a{background:#272727;color:#fff;border:1px solid #444}.song-sheet{font-size:var(--song-size);line-height:1.35;max-width:1400px}.song-line{display:flex;flex-wrap:wrap;align-items:flex-end;min-height:2.15em}.song-cell{display:inline-flex;flex-direction:column;vertical-align:bottom;white-space:pre}.chord{min-height:1.05em;font-size:.72em;font-weight:800;color:#f3ad45;line-height:1}.lyric{white-space:pre}.song-spacer{height:.9em}.comment{font-style:italic;color:#bbb;margin:.5em 0}.player-page.chords-off .chord{display:none}.player-page.light{background:#fafafa;color:#111}.player-page.light .player-controls{background:#fafafa}.player-page.light .player-controls button,.player-page.light .player-controls a{background:#fff;color:#111;border-color:#bbb}.player-page.light .comment{color:#555}.meta-inline{display:flex;gap:14px;flex-wrap:wrap;color:#bbb}.light .meta-inline{color:#555}.login{max-width:420px;margin:10vh auto}.dashboard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-actions a{min-height:120px;border-radius:18px;background:#fff;border:1px solid #ddd;color:#111;text-decoration:none;padding:20px;font-size:1.3rem;font-weight:800}.playlist-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.checkbox{display:flex;gap:8px;align-items:center;font-weight:500}.checkbox input{width:auto}
@media(max-width:900px){.song-row{grid-template-columns:1fr auto}.song-row .optional{display:none}.grid.two,.grid.three{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:12px;flex-direction:column}.container{padding:14px}.dashboard-actions{grid-template-columns:1fr}.playlist-checks{grid-template-columns:1fr}}
@media(orientation:landscape) and (min-width:900px){.player-page .container{padding:16px 34px}.song-block-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:70px}}


/* Version 1.1: eigenständiges Playlist-Layout */
.playlist-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);align-items:start}
.playlist-list{display:grid;gap:10px;min-width:0}
.playlist-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;min-width:0}
.playlist-info{min-width:0}
.playlist-info .song-title,.playlist-info .muted{overflow-wrap:anywhere}
.playlist-open{white-space:nowrap}
@media(max-width:900px){.playlist-layout{grid-template-columns:1fr}.playlist-row{grid-template-columns:minmax(0,1fr) auto}.playlist-row .playlist-open{grid-column:1/-1;width:100%}}
.code-editor{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.45;min-height:55vh;white-space:pre;overflow:auto}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:#eee;padding:2px 5px;border-radius:5px}

.app-version{font-size:.72em;color:#bbb;font-weight:600;margin-left:.25rem}.round-close{width:42px;height:42px;padding:0;border-radius:50%}.player-toolbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#111;padding:8px 0 14px}.control-group{display:flex;border:1px solid #444;border-radius:14px;overflow:hidden}.tool-icon{min-width:48px;height:46px;border:0;border-radius:0!important;background:#272727!important;color:#fff!important;font-size:1.5rem;padding:0 12px!important}.control-group .tool-icon+.tool-icon{border-left:1px solid #444}.tool-icon.active{color:#ffbd4a!important;box-shadow:inset 0 0 0 2px #ffbd4a}.font-small{font-size:1rem}.font-large{font-size:1.55rem}.wide-icon{min-width:64px;font-size:1.25rem}.toolbar-spacer{flex:1}.capo-select{display:flex;align-items:center;gap:8px;background:#272727;border:1px solid #444;border-radius:14px;padding:4px 8px;margin:0;font-size:.85rem;color:#bbb}.capo-select select{width:auto;min-width:72px;background:#272727;color:#fff;border:0;padding:7px;font-weight:800}.player-page.light .player-toolbar{background:#fafafa}.player-page.light .tool-icon,.player-page.light .capo-select,.player-page.light .capo-select select{background:#fff!important;color:#111!important;border-color:#bbb}.song-block-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem 3rem}.song-block{min-width:0;break-inside:avoid;border-top:1px solid transparent}.song-block h3{margin:.25em 0 .65em}.song-line{min-width:0;max-width:100%;overflow-wrap:anywhere}.song-cell{min-width:0;max-width:100%;white-space:normal}.lyric{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.section-comment{overflow-wrap:anywhere;word-break:break-word;color:#bbb}.section-comment h3{font-size:1em;font-weight:500;font-style:italic}.detail-tabs{display:flex;gap:8px;margin-top:18px;border-bottom:1px solid var(--line)}.tab-button{border-radius:10px 10px 0 0;background:#e8e8e8;color:#111}.tab-button.active{background:#111;color:#fff}.history-list{display:grid;gap:8px}.history-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) 90px;gap:12px;padding:10px;border-bottom:1px solid var(--line)}
@media(max-width:700px){.toolbar-spacer{display:none}.player-toolbar form{margin-left:0}.tool-icon{min-width:44px}.history-row{grid-template-columns:1fr}.song-block-grid{display:block}.song-block{margin-bottom:1.5rem}}

/* V2.2: ein gemeinsamer Viewer fuer Musiker und Publikum */
.player-page .song-block-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem 3rem}
@media(orientation:landscape) and (min-width:900px){.player-page .song-block-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.player-page .song-column{min-width:0}}
