:root{--bg:#0a0a0f;--bg-card:#13131a;--bg-card2:#1a1a24;--border:#ffffff14;--accent:#c20;--accent2:#d4af37;--text:#f0f0f0;--text-muted:#888;--green:#22c55e;--orange:#f59e0b;--blue:#3b82f6;--radius:12px;--radius-sm:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-wrap{max-width:900px;margin:0 auto;padding:0 16px 100px}.topbar{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0a0a0feb;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.topbar-logo{border-radius:6px;width:28px;height:28px}.topbar-title{color:var(--accent);flex:1;font-size:1rem;font-weight:700}.topbar-turnier{color:var(--text-muted);font-size:.78rem}.topbar-back{color:var(--accent2);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.2rem}.topbar-back:hover{background:#d4af371a}.live-dot{text-transform:uppercase;letter-spacing:.05em;color:var(--green);align-items:center;gap:6px;font-size:.72rem;font-weight:700;display:inline-flex}.live-dot:before{content:"";background:var(--green);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite pulse;display:block}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.bottom-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);z-index:100;background:#0a0a0ff2;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 4px 14px;font-size:.68rem;transition:color .15s;display:flex}.nav-btn svg,.nav-btn .nav-icon{font-size:1.4rem}.nav-btn.active{color:var(--accent2)}.nav-btn:hover:not(.active){color:var(--text)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card+.card{margin-top:10px}.section-header{align-items:center;gap:10px;margin:24px 0 12px;display:flex}.section-header h2{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.8rem;font-weight:700}.kampf-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);gap:10px;padding:14px 16px;display:grid}.kampf-card+.kampf-card{margin-top:8px}.kampf-card.status-running{border-color:var(--green);background:#22c55e0d}.kampf-card.status-ready{border-color:var(--orange);background:#f59e0b0d}.kampf-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.kampf-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:3px 8px;font-size:.65rem;font-weight:700}.badge-running{color:var(--green);background:#22c55e26}.badge-ready{color:var(--orange);background:#f59e0b26}.badge-pending{color:var(--text-muted);background:#ffffff12}.badge-done{color:#555;background:#ffffff0d}.kampf-division{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.75rem;overflow:hidden}.kampf-matte{color:var(--accent2);font-size:.75rem;font-weight:600}.kampf-vs{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.kaempfer-name{font-size:1rem;font-weight:700}.kaempfer-name.right{text-align:right}.kaempfer-sub{color:var(--text-muted);font-size:.72rem}.kaempfer-sub.right{text-align:right}.vs-label{color:var(--accent);text-align:center;opacity:.7;font-size:.75rem;font-weight:900}.kampf-ergebnis{color:var(--text-muted);text-align:center;margin-top:4px;font-size:.72rem}.sieger-label{color:var(--accent2);font-weight:700}.matten-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px;display:grid}.matte-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.matte-card.has-running{border-color:var(--green)}.matte-header{background:var(--bg-card2);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 14px;display:flex}.matte-nr{color:var(--accent2);font-size:1.1rem;font-weight:900}.matte-name{color:var(--text-muted);font-size:.8rem}.matte-body{padding:12px}.matte-slot-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px;font-size:.65rem;font-weight:700}.matte-slot-label.laufend{color:var(--green)}.matte-empty{color:#444;text-align:center;padding:8px 0;font-size:.8rem}.search-wrap{position:relative}.search-input{background:var(--bg-card2);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:14px 48px 14px 16px;font-size:1rem;transition:border-color .15s}.search-input:focus{border-color:var(--accent2)}.search-input::placeholder{color:var(--text-muted)}.search-icon{color:var(--text-muted);pointer-events:none;font-size:1.1rem;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.athlet-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-top:12px;overflow:hidden}.athlet-header{background:var(--bg-card2);border-bottom:1px solid var(--border);padding:12px 16px}.athlet-name{font-size:1rem;font-weight:700}.athlet-sub{color:var(--text-muted);font-size:.75rem}.athlet-kaempfe{gap:6px;padding:10px;display:grid}.select-wrap{flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100dvh;padding:24px;display:flex}.select-logo{border-radius:16px;height:64px;margin-bottom:8px}.select-title{color:var(--accent);text-align:center;font-size:1.6rem;font-weight:900}.select-sub{color:var(--text-muted);text-align:center;font-size:.85rem}.select-list{gap:10px;width:100%;max-width:480px;display:grid}.select-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:left;cursor:pointer;color:var(--text);align-items:center;gap:16px;padding:16px 20px;transition:border-color .15s,background .15s;display:flex}.select-btn:hover{border-color:var(--accent2);background:var(--bg-card2)}.select-btn-today{border-color:#22c55e66}.select-turnier-name{font-size:.95rem;font-weight:700}.select-turnier-sub{color:var(--text-muted);margin-top:2px;font-size:.75rem}.select-date-badge{color:var(--green);white-space:nowrap;background:#22c55e1f;border-radius:6px;flex-shrink:0;padding:4px 8px;font-size:.7rem;font-weight:700}.select-date-badge.future{color:var(--text-muted);background:#ffffff0f}.spinner{border:3px solid var(--border);border-top-color:var(--accent2);border-radius:50%;width:36px;height:36px;margin:48px auto;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--text-muted);padding:48px 16px;font-size:.9rem}.empty-state .emoji{margin-bottom:12px;font-size:2.5rem;display:block}.tab-bar{scrollbar-width:none;gap:4px;padding:12px 0 0;display:flex;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab-pill{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:20px;flex-shrink:0;padding:6px 14px;font-size:.78rem;transition:all .15s}.tab-pill.active{background:var(--accent2);border-color:var(--accent2);color:#000;font-weight:700}@media (width<=480px){.kaempfer-name{font-size:.9rem}.matten-grid{grid-template-columns:1fr}}
