@tailwind base; @tailwind components; @tailwind utilities; :root { --rmaps-primary: #10b981; --rmaps-secondary: #6366f1; --rmaps-dark: #0f172a; --rmaps-light: #f8fafc; } * { box-sizing: border-box; padding: 0; margin: 0; } html, body { max-width: 100vw; overflow-x: hidden; height: 100%; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; background: var(--rmaps-dark); color: var(--rmaps-light); } /* MapLibre GL overrides */ .maplibregl-map { font-family: inherit; } .maplibregl-ctrl-group { background: rgba(15, 23, 42, 0.9) !important; border: 1px solid rgba(255, 255, 255, 0.1) !important; } .maplibregl-ctrl-group button { background-color: transparent !important; } .maplibregl-ctrl-group button:hover { background-color: rgba(255, 255, 255, 0.1) !important; } .maplibregl-ctrl-group button span { filter: invert(1); } /* Friend marker styles */ .friend-marker { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; font-size: 1.5rem; cursor: pointer; transition: transform 0.2s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } .friend-marker:hover { transform: scale(1.2); } .friend-marker.sharing { animation: pulse-ring 2s infinite; } @keyframes pulse-ring { 0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4); } 70% { box-shadow: 0 0 0 15px rgba(16, 185, 129, 0); } 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); } } /* Accuracy circle */ .accuracy-circle { position: absolute; border-radius: 50%; background: rgba(16, 185, 129, 0.15); border: 2px solid rgba(16, 185, 129, 0.3); pointer-events: none; } /* Room panel */ .room-panel { background: rgba(15, 23, 42, 0.95); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } /* Participant list item */ .participant-item { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem; border-radius: 0.5rem; transition: background 0.2s ease; } .participant-item:hover { background: rgba(255, 255, 255, 0.05); } /* Status indicators */ .status-dot { width: 8px; height: 8px; border-radius: 50%; } .status-dot.online { background: #10b981; box-shadow: 0 0 6px #10b981; } .status-dot.away { background: #f59e0b; } .status-dot.ghost { background: #6b7280; } .status-dot.offline { background: #ef4444; } /* Button styles */ .btn-primary { @apply bg-rmaps-primary hover:bg-emerald-600 text-white font-medium py-2 px-4 rounded-lg transition-colors; } .btn-secondary { @apply bg-rmaps-secondary hover:bg-indigo-600 text-white font-medium py-2 px-4 rounded-lg transition-colors; } .btn-ghost { @apply bg-transparent hover:bg-white/10 text-white font-medium py-2 px-4 rounded-lg transition-colors border border-white/20; } /* Input styles */ .input { @apply bg-white/10 border border-white/20 rounded-lg px-4 py-2 text-white placeholder-white/50 focus:outline-none focus:border-rmaps-primary focus:ring-1 focus:ring-rmaps-primary; } /* c3nav iframe container */ .c3nav-container { position: relative; width: 100%; height: 100%; } .c3nav-container iframe { width: 100%; height: 100%; border: none; } /* Loading states */ .skeleton { @apply bg-white/10 animate-pulse rounded; }