/* ============================================================ public/css/daily.css – Daily World Map (SVG-Overlay Ansatz) ============================================================ */ @keyframes dailyFadeIn { from{opacity:0} to{opacity:1} } @keyframes dailyScaleIn { from{opacity:0;transform:translate(-50%,-50%) scale(.92)} to{opacity:1;transform:translate(-50%,-50%) scale(1)} } /* ── Overlay ─────────────────────────────────────────────── */ #daily-map-overlay { position: fixed; inset: 0; z-index: 10000; background: rgba(0,0,0,.88); display: flex; align-items: center; justify-content: center; animation: dailyFadeIn .3s ease; } /* ── Map Container ───────────────────────────────────────── */ #daily-map-wrap { position: relative; max-width: min(96vw, 1020px); border-radius: 16px; overflow: hidden; animation: dailyScaleIn .3s cubic-bezier(.22,1,.36,1); box-shadow: 0 0 0 1px rgba(80,140,255,.4), 0 0 0 3px rgba(80,140,255,.1), 0 30px 80px rgba(0,0,0,.9); } #daily-map-img { display: block; width: 100%; height: auto; user-select: none; pointer-events: none; } /* ── SVG Overlay (liegt auf dem Bild) ────────────────────── */ #daily-map-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; } /* ── Stationen (SVG-Gruppen) ─────────────────────────────── */ .ds-hit { cursor: pointer; fill: transparent; } .ds-locked .ds-hit { cursor: default; } /* Pfadlinie */ .ds-path-line { fill: none; stroke: rgba(80,160,255,.25); stroke-width: .7; stroke-dasharray: 3 2.5; } .ds-path-line.done { stroke: rgba(100,220,120,.4); } /* Locked: dunkle Abdunklung über dem Bildkreis */ .ds-locked .ds-overlay { fill: rgba(0,0,5,.35); stroke: none; } .ds-locked .ds-num { fill: rgba(120,130,160,.38); font-family: "Cinzel", serif; font-weight: 700; } /* Available: transparente Mitte, leuchtender Rand */ .ds-available .ds-overlay { fill: transparent; stroke: none; } .ds-available .ds-num { fill: #fff; font-family: "Cinzel", serif; font-weight: 700; filter: drop-shadow(0 0 3px rgba(180,220,255,.9)); } /* Pulsierender Außenring */ .ds-available .ds-ring1 { fill: none; stroke: rgba(80,180,255,.65); stroke-width: .9; } .ds-available .ds-ring2 { fill: none; stroke: rgba(80,180,255,.3); stroke-width: .6; } /* Hover */ .ds-available:hover .ds-overlay { fill: rgba(60,130,255,.18); stroke: rgba(150,220,255,1); stroke-width: 1.5; } .ds-available:hover .ds-num { filter: drop-shadow(0 0 6px rgba(200,240,255,1)); } /* Done: grüne Einfärbung */ .ds-done .ds-overlay { fill: rgba(30,160,70,.55); stroke: rgba(80,220,110,.7); stroke-width: .8; } .ds-done .ds-check { fill: #fff; font-family: sans-serif; font-weight: 700; filter: drop-shadow(0 0 2px rgba(50,200,80,.8)); } /* ── Titel ───────────────────────────────────────────────── */ #daily-map-title { position: absolute; top: 14px; left: 50%; transform: translateX(-50%); background: linear-gradient(135deg, rgba(5,8,20,.9), rgba(8,12,28,.92)); border: 1px solid rgba(80,140,255,.45); border-radius: 20px; padding: 7px 26px; font-family: "Cinzel", serif; font-size: 13px; color: #a0c8ff; letter-spacing: 4px; white-space: nowrap; z-index: 10; pointer-events: none; box-shadow: 0 4px 20px rgba(0,0,0,.6); } /* ── Schließen ───────────────────────────────────────────── */ #daily-map-close { position: absolute; top: 12px; right: 14px; background: rgba(0,0,0,.65); border: 1px solid rgba(255,255,255,.15); border-radius: 50%; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.7); font-size: 14px; cursor: pointer; z-index: 20; transition: .2s; } #daily-map-close:hover { background: rgba(180,40,40,.8); color:#fff; } /* ── Progress Bar ────────────────────────────────────────── */ #daily-progress-bar-wrap { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); width: 60%; background: rgba(5,8,20,.82); border: 1px solid rgba(80,140,255,.3); border-radius: 10px; padding: 8px 18px 9px; z-index: 10; pointer-events: none; } #daily-progress-text { font-family: "Cinzel", serif; font-size: 11px; color: rgba(160,200,255,.8); letter-spacing: 1px; text-align: center; margin-bottom: 6px; } #daily-progress-track { height: 5px; background: rgba(80,140,255,.12); border-radius: 3px; overflow: hidden; } #daily-progress-fill { height: 100%; background: linear-gradient(90deg, #2060dd, #60b0ff); border-radius: 3px; transition: width .7s ease; box-shadow: 0 0 8px rgba(80,160,255,.6); } /* ── All Done ────────────────────────────────────────────── */ #daily-all-done { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; background: rgba(0,5,15,.8); border-radius: 16px; z-index: 20; backdrop-filter: blur(4px); animation: dailyFadeIn .4s ease; } #daily-all-done .done-icon { font-size:56px; margin-bottom:16px; } #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:26px; } #daily-all-done .done-btn { background:linear-gradient(135deg,#1a4a28,#27ae60); border:2px solid rgba(100,220,100,.6); border-radius:10px; color:#fff; font-family:"Cinzel",serif; font-size:13px; letter-spacing:3px; padding:11px 34px; cursor:pointer; transition:.2s; } #daily-all-done .done-btn:hover { border-color:#7af09a; }