:root{--bg:#fff;--bg-subtle:#f5f5f7;--border:#e2e2e6;--text:#1a1a1a;--text-muted:#6b6b7b;--accent:#5b3cff;--accent-bg:#5b3cff14;--chorus-accent:#c2440e;--chorus-bg:#c2440e12;--bridge-accent:#0e7a6e;--bridge-bg:#0e7a6e12;--bar-bg:#fffe;--bar-border:#e2e2e6;--shadow:0 -1px 0 var(--bar-border);--men-color:#1d4ed8;--women-color:#be185d;--leader-color:#15803d;--congregation-color:#7e22ce;--all-color:#374151;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--men-color:#60a5fa;--women-color:#f472b6;--leader-color:#4ade80;--congregation-color:#c084fc;--all-color:#9ca3af;--bg:#111113;--bg-subtle:#1c1c1f;--border:#2e2e33;--text:#f0f0f2;--text-muted:#8e8e9e;--accent:#8b74ff;--accent-bg:#8b74ff1f;--chorus-accent:#f07040;--chorus-bg:#f070401a;--bridge-accent:#3ccfbf;--bridge-bg:#3ccfbf1a;--bar-bg:#111113ee;--bar-border:#2e2e33}}[data-theme=dark]{--men-color:#60a5fa;--women-color:#f472b6;--leader-color:#4ade80;--congregation-color:#c084fc;--all-color:#9ca3af;--bg:#111113;--bg-subtle:#1c1c1f;--border:#2e2e33;--text:#f0f0f2;--text-muted:#8e8e9e;--accent:#8b74ff;--accent-bg:#8b74ff1f;--chorus-accent:#f07040;--chorus-bg:#f070401a;--bridge-accent:#3ccfbf;--bridge-bg:#3ccfbf1a;--bar-bg:#111113ee;--bar-border:#2e2e33}[data-theme=light]{--bg:#fff;--bg-subtle:#f5f5f7;--border:#e2e2e6;--text:#1a1a1a;--text-muted:#6b6b7b;--accent:#5b3cff;--accent-bg:#5b3cff14;--chorus-accent:#c2440e;--chorus-bg:#c2440e12;--bridge-accent:#0e7a6e;--bridge-bg:#0e7a6e12;--bar-bg:#fffe;--bar-border:#e2e2e6}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}button:disabled{opacity:.35;cursor:default}h1,h2,p{margin:0}#root{flex-direction:column;min-height:100svh;display:flex}.page{flex-direction:column;min-height:100svh;padding-bottom:72px;display:flex}.page-header{border-bottom:1px solid var(--border);padding:24px 20px 16px}.page-header__title{letter-spacing:-.02em;color:var(--text);font-size:1.5em;font-weight:700;line-height:1.2}.page-header__date,.page-header__author{color:var(--text-muted);margin-top:4px;font-size:.85em}.song-list{flex-direction:column;flex:1;padding:12px 0;display:flex}.song-list__item{border-bottom:1px solid var(--border);text-align:left;-webkit-tap-highlight-color:transparent;align-items:center;gap:16px;width:100%;padding:18px 20px;transition:background .15s;display:flex}.song-list__item:first-child{border-top:1px solid var(--border)}.song-list__item:active{background:var(--bg-subtle)}.song-list__item--activity{cursor:default;-webkit-tap-highlight-color:transparent}.song-list__item--activity:active{background:0 0}.song-list__number{color:var(--accent);text-align:center;min-width:24px;font-size:.85em;font-weight:600}.song-list__activity-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin:0 9px}.song-list__title{font-size:1em;font-weight:500;line-height:1.3}.song-list__author{color:var(--text-muted);font-weight:400}.admin-toolbar{border-bottom:1px solid var(--border);padding:12px 20px}.admin-rebuild-btn{border:1.5px solid var(--accent);width:100%;color:var(--accent);background:var(--accent-bg);-webkit-tap-highlight-color:transparent;border-radius:8px;padding:10px 16px;font-size:.9em;font-weight:600;transition:opacity .15s,background .15s}.admin-rebuild-btn:not(:disabled):active{opacity:.75}.admin-rebuild-btn--loading{opacity:.6}.admin-rebuild-btn--done{border-color:var(--leader-color);color:var(--leader-color);background:var(--bridge-bg)}.admin-rebuild-btn--error{border-color:var(--chorus-accent);color:var(--chorus-accent);background:var(--chorus-bg)}.admin-badge{letter-spacing:.08em;text-transform:uppercase;background:var(--accent-bg);color:var(--accent);border-radius:4px;margin-top:6px;padding:2px 8px;font-size:.7em;font-weight:700;display:inline-block}.song-list__title--activity{color:var(--text-muted);font-size:.9em;font-weight:400}.song-view{flex-direction:column;flex:1;gap:28px;padding:20px;display:flex}.section{flex-direction:column;gap:10px;display:flex}.section__label{letter-spacing:.08em;text-transform:uppercase;background:var(--bg-subtle);color:var(--text-muted);border-radius:4px;width:fit-content;padding:3px 8px;font-size:.7em;font-weight:700;display:inline-block}.section--chorus .section__label{background:var(--chorus-bg);color:var(--chorus-accent)}.section--bridge .section__label{background:var(--bridge-bg);color:var(--bridge-accent)}.section--pre-chorus .section__label{background:var(--accent-bg);color:var(--accent)}.section__lines{line-height:1.7}.section__lines p{margin:0}.line--men{color:var(--men-color)}.line--women{color:var(--women-color)}.line--leader{color:var(--leader-color)}.line--congregation{color:var(--congregation-color)}.line--all{color:var(--all-color)}.line__designation{letter-spacing:.06em;text-transform:uppercase;opacity:.85;vertical-align:.1em;margin-right:.6em;font-size:.65em;font-weight:700}.bottom-bar{background:var(--bar-bg);border-top:1px solid var(--bar-border);-webkit-backdrop-filter:blur(12px);z-index:100;justify-content:space-between;align-items:center;height:60px;padding:0 16px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-bar__group{align-items:center;gap:4px;display:flex}.bottom-bar__btn{color:var(--text);-webkit-tap-highlight-color:transparent;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px 12px;font-size:.9em;font-weight:500;transition:background .15s;display:flex}.bottom-bar__btn:not(:disabled):active{background:var(--bg-subtle)}.bottom-bar__btn--icon{letter-spacing:-.01em;font-size:.95em;font-weight:600}.bottom-bar__btn--nav{font-size:1em}.nav-long{display:none}.nav-short{font-size:1.3em;line-height:1;display:inline}@media (width>=520px){.nav-long{display:inline}.nav-short{display:none}}.loading,.error{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:.95em}.error{color:#c0392b}
