/* ============================================================ public/css/daily.css Daily Herausforderung – Karten-Pfad Overlay ============================================================ */ /* ── Overlay ─────────────────────────────────────────────── */ #daily-map-overlay { position: fixed; inset: 0; z-index: 10000; background: rgba(0, 0, 0, 0.92); display: flex; align-items: center; justify-content: center; animation: dailyFadeIn 0.35s ease; } @keyframes dailyFadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes dailyPulse { 0%, 100% { box-shadow: 0 0 14px 4px rgba(80,160,255,0.7); } 50% { box-shadow: 0 0 28px 10px rgba(80,160,255,1); } } @keyframes dailyGlow { 0%, 100% { opacity: 1; } 50% { opacity: 0.65; } } /* ── Map Container ───────────────────────────────────────── */ #daily-map-wrap { position: relative; max-width: min(95vw, 1000px); max-height: 90vh; border-radius: 14px; overflow: hidden; box-shadow: 0 0 0 2px rgba(80, 140, 255, 0.4), 0 30px 80px rgba(0, 0, 0, 0.9); } #daily-map-img { display: block; width: 100%; height: auto; max-height: 90vh; object-fit: cover; user-select: none; pointer-events: none; } /* ── Close Button ────────────────────────────────────────── */ #daily-map-close { position: absolute; top: 12px; right: 14px; background: rgba(0, 0, 0, 0.7); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 16px; cursor: pointer; z-index: 10; transition: background 0.2s; } #daily-map-close:hover { background: rgba(200, 50, 50, 0.8); } /* ── Title Banner ────────────────────────────────────────── */ #daily-map-title { position: absolute; top: 14px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.72); border: 1px solid rgba(80, 140, 255, 0.45); border-radius: 8px; padding: 6px 22px; font-family: "Cinzel", serif; font-size: 15px; color: #a0c8ff; letter-spacing: 3px; white-space: nowrap; z-index: 10; } /* ── Circles ─────────────────────────────────────────────── */ .daily-circle { position: absolute; width: 7%; /* scales with image width */ aspect-ratio: 1; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: "Cinzel", serif; font-size: clamp(12px, 1.8vw, 22px); font-weight: bold; transform: translate(-50%, -50%); cursor: default; transition: transform 0.15s ease; z-index: 5; user-select: none; } /* Completed station ─ grün */ .daily-circle.done { background: radial-gradient(circle at 40% 35%, #4ecf6a, #1a7a30); border: 3px solid #7af09a; color: #fff; box-shadow: 0 0 14px rgba(78, 207, 106, 0.6); } .daily-circle.done::after { content: "✓"; font-size: clamp(10px, 1.5vw, 18px); } /* Available station ─ blaues Pulsieren */ .daily-circle.available { background: radial-gradient(circle at 40% 35%, #5090ff, #1a3a9a); border: 3px solid #90c0ff; color: #fff; cursor: pointer; animation: dailyPulse 2s ease-in-out infinite; } .daily-circle.available:hover { transform: translate(-50%, -50%) scale(1.15); animation: none; box-shadow: 0 0 30px 8px rgba(80, 160, 255, 0.9); } /* Locked station ─ ausgegraut */ .daily-circle.locked { background: radial-gradient(circle at 40% 35%, #2a2a3a, #141420); border: 3px solid rgba(80, 100, 150, 0.4); color: rgba(150, 160, 200, 0.35); } /* ── Progress Text ───────────────────────────────────────── */ #daily-progress-bar-wrap { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); width: 60%; background: rgba(0, 0, 0, 0.72); border: 1px solid rgba(80, 140, 255, 0.35); border-radius: 8px; padding: 8px 16px; z-index: 10; text-align: center; font-family: "Cinzel", serif; } #daily-progress-text { font-size: 12px; color: #a0c8ff; letter-spacing: 1px; margin-bottom: 5px; } #daily-progress-track { height: 6px; background: rgba(80, 140, 255, 0.15); border-radius: 3px; overflow: hidden; } #daily-progress-fill { height: 100%; background: linear-gradient(90deg, #3060cc, #60a0ff); border-radius: 3px; transition: width 0.6s ease; } /* ── All Done ────────────────────────────────────────────── */ #daily-all-done { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.78); border-radius: 14px; z-index: 20; animation: dailyFadeIn 0.4s ease; } #daily-all-done .done-icon { font-size: 56px; margin-bottom: 14px; } #daily-all-done .done-title { font-family: "Cinzel", serif; font-size: 22px; color: #7af09a; letter-spacing: 4px; margin-bottom: 8px; } #daily-all-done .done-sub { font-family: "Cinzel", serif; font-size: 12px; color: #a0c8a0; margin-bottom: 24px; } #daily-all-done .done-btn { background: linear-gradient(135deg, #1a4a28, #27ae60); border: 2px solid rgba(100, 220, 100, 0.6); border-radius: 10px; color: #fff; font-family: "Cinzel", serif; font-size: 13px; letter-spacing: 3px; padding: 11px 32px; cursor: pointer; transition: 0.2s; } #daily-all-done .done-btn:hover { border-color: #7af09a; background: linear-gradient(135deg, #2a6a38, #37be70); }