:root{--bg:#1b1d22;--fg:#e8e6e1;--muted:#9a9890;--accent:#e0a84a;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);-webkit-text-size-adjust:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#app{min-height:100%;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left))}h1{margin:0 0 8px;font-size:1.6rem}.muted{color:var(--muted)}dl{grid-template-columns:max-content 1fr;gap:6px 16px;margin-top:24px;display:grid}dt{color:var(--muted)}dd{margin:0}.ok{color:#7cc47f}.no{color:#e07a6a}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{min-height:44px;color:var(--fg);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#2a2d34;border:1px solid #3a3d45;border-radius:10px;justify-content:center;align-items:center;padding:0 16px;font-weight:600;display:inline-flex}.btn:active{opacity:.7}.btn-primary{border-color:var(--accent);background:var(--accent);color:#1b1d22}.btn-danger{color:#e07a6a}.lib-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.lib-header h1{margin:0}.lib-actions{gap:8px;display:flex}.song-list{margin:16px 0;padding:0;list-style:none}.song{border-bottom:1px solid #2a2d34;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.song-link{min-height:44px;color:inherit;-webkit-tap-highlight-color:transparent;flex:1;text-decoration:none}.song-title{overflow-wrap:anywhere;font-weight:600}.song-meta{margin-top:2px;font-size:.9rem}.info{margin-top:32px}.info summary{min-height:44px;color:var(--muted);cursor:pointer}.version-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.info dl{margin-top:12px}body.reading{overflow:hidden}.reader{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#000;position:fixed;inset:0}.reader-stage{top:var(--safe-top);right:var(--safe-right);bottom:var(--safe-bottom);left:var(--safe-left);position:absolute;overflow:hidden}.reader-arrow{width:44px;height:120px;color:var(--fg);-webkit-tap-highlight-color:transparent;background:#1b1d228c;border:0;margin-top:-60px;padding:0;font-size:2rem;line-height:1;position:absolute;top:50%}.reader-arrow:active{background:#e0a84acc}.reader-arrow:disabled{opacity:.25}.reader-arrow-prev{left:var(--safe-left);border-radius:0 14px 14px 0}.reader-arrow-next{right:var(--safe-right);border-radius:14px 0 0 14px}.reader-pages{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.reader-pages .page{background:#fff;display:block}.reader-message{color:var(--muted)}.reader-toolbar{padding:calc(8px + var(--safe-top)) calc(12px + var(--safe-right)) 8px calc(12px + var(--safe-left));background:#1b1d22eb;align-items:center;gap:12px;transition:transform .2s,opacity .2s;display:flex;position:absolute;top:0;left:0;right:0}.reader-toolbar.hidden{opacity:0;pointer-events:none;transform:translateY(-100%)}.reader-title{white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.reader-indicator{color:var(--muted);font-variant-numeric:tabular-nums}.banner{left:50%;bottom:calc(16px + var(--safe-bottom));max-width:calc(100% - 32px);color:var(--fg);background:#2a2d34;border-radius:12px;align-items:center;gap:12px;padding:10px 12px 10px 16px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #0006}.banner button{background:var(--accent);color:#1b1d22;min-height:44px;font:inherit;border:0;border-radius:8px;padding:0 14px;font-weight:600}.banner .banner-close{min-width:44px;color:var(--muted);background:0 0;padding:0;font-size:1.4rem}
