/* Audiofy – Gastseite (mobil zuerst) */ :root { --bg: #121212; --karte: #1e1e1e; --linie: #2c2c2c; --text: #f2f2f2; --leise: #a7a7a7; --akzent: #1ed760; --akzent-text: #0b0b0b; --warnung: #f5a524; --fehler: #ff6b6b; --radius: 14px; } * { box-sizing: border-box; } html { -webkit-text-size-adjust: 100%; } body { margin: 0; background: var(--bg); color: var(--text); font: 16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; } main { max-width: 640px; margin: 0 auto; padding: 16px 16px calc(32px + env(safe-area-inset-bottom)); } header { text-align: center; margin: 8px 0 16px; } h1 { margin: 0; font-size: 1.9rem; letter-spacing: .02em; } .untertitel { margin: 0; color: var(--leise); } h2 { margin: 0 0 12px; font-size: 1.05rem; color: var(--leise); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; } .karte { background: var(--karte); border-radius: var(--radius); padding: 16px; margin-bottom: 16px; } .banner { background: #3a2d10; color: var(--warnung); border-radius: var(--radius); padding: 12px 16px; margin-bottom: 16px; font-weight: 600; } .banner.leise { background: var(--karte); color: var(--leise); font-weight: 400; } .hinweis { color: var(--leise); margin: 8px 0 0; } .klein { font-size: .875rem; } input[type="search"], input[type="text"] { width: 100%; font: inherit; font-size: 1.05rem; /* ≥ 16px verhindert Zoom auf iOS */ color: var(--text); background: #2a2a2a; border: 2px solid transparent; border-radius: 999px; padding: 12px 18px; outline: none; } input:focus { border-color: var(--akzent); } .name-zeile { display: block; margin-top: 10px; } .turnstile { display: flex; justify-content: center; } .turnstile:not(:empty) { margin-top: 10px; } .name-zeile span { display: block; font-size: .875rem; color: var(--leise); margin: 0 0 4px 6px; } .name-zeile input { font-size: 1rem; padding: 10px 16px; } .liste { list-style: none; margin: 8px 0 0; padding: 0; } .liste li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--linie); } .liste li:first-child { border-top: 0; } .liste.kompakt li { padding: 6px 0; } .cover { width: 52px; height: 52px; border-radius: 6px; background: #333; flex: 0 0 auto; object-fit: cover; } .titel-zeile { display: flex; align-items: center; gap: 14px; } .titel-zeile .cover { width: 72px; height: 72px; } .text { min-width: 0; flex: 1; } .text .t, .text .a { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .text .t { font-weight: 600; } .text .a, .text .m { color: var(--leise); font-size: .9rem; } .text .m { display: block; } .marke { display: inline-block; font-size: .72rem; font-weight: 700; padding: 1px 7px; border-radius: 999px; margin-left: 6px; vertical-align: 2px; background: var(--akzent); color: var(--akzent-text); } .marke.e { background: #555; color: var(--text); } button.wuenschen { flex: 0 0 auto; font: inherit; font-weight: 700; min-height: 44px; min-width: 96px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--akzent); color: var(--akzent-text); cursor: pointer; } button.wuenschen:disabled { background: #333; color: var(--leise); cursor: default; } .gesperrt { color: var(--leise); font-size: .8rem; } .fortschritt { height: 4px; background: #333; border-radius: 2px; margin-top: 12px; overflow: hidden; } #fortschritt-balken { height: 100%; width: 0; background: var(--akzent); transition: width 1s linear; } .status { font-size: .8rem; font-weight: 700; white-space: nowrap; } .status.queued { color: var(--akzent); } .status.pending { color: var(--warnung); } .status.played { color: var(--leise); } .status.rejected, .status.deleted { color: var(--fehler); } .toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); transform: translateX(-50%); max-width: calc(100% - 32px); background: var(--text); color: #111; padding: 12px 18px; border-radius: 12px; font-weight: 600; box-shadow: 0 6px 24px rgba(0, 0, 0, .5); } .toast.fehler { background: var(--fehler); color: #111; } footer { text-align: center; color: #666; font-size: .8rem; margin-top: 24px; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }