/* ===========================================
   SleepShare – خريطة نوم عالمية تفاعلية
   =========================================== */

:root {
  --bg-main: #020617;
  --text-main: #f9fafb;
  --text-muted: #9ca3af;

  --accent: #a855f7;
  --accent-soft: rgba(168, 85, 247, 0.15);

  --room-global: #4cc9f0;
  --room-dreamers: #f97316;
  --room-midnight: #38bdf8;
  --room-calm: #a855f7;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: "Tajawal", system-ui, -apple-system, BlinkMacSystemFont,
    sans-serif;
  background: radial-gradient(circle at 0% 0%, #0f172a, #020617 55%, #000 100%);
  color: var(--text-main);
  direction: rtl;
}

/* صفحة كاملة */

.page-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 16px 40px;
}

/* رأس الصفحة */

.sleep-header {
  text-align: center;
  margin-bottom: 24px;
}

.sleep-title {
  margin: 0 0 8px;
  font-size: 28px;
  letter-spacing: 0.03em;
}

.brand {
  color: #a855f7;
}

.sleep-desc {
  margin: 0 auto;
  max-width: 720px;
  font-size: 15px;
  color: var(--text-muted);
  line-height: 1.9;
}

/* زر الانضمام */

.primary-btn {
  display: block;
  margin: 24px auto 16px;
  padding: 11px 38px;
  border-radius: 999px;
  border: none;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  background: radial-gradient(circle at 0% 0%, #f9fafb, #a855f7 60%);
  color: #020617;
  box-shadow: 0 18px 40px rgba(168, 85, 247, 0.6);
  transition: transform 0.18s ease-out, box-shadow 0.18s ease-out,
    opacity 0.18s ease-out;
}

.primary-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 60px rgba(168, 85, 247, 0.85);
}

.primary-btn:disabled {
  opacity: 0.65;
  cursor: default;
  transform: none;
  box-shadow: 0 16px 32px rgba(31, 41, 55, 0.8);
}

/* أزرار الغرف */

.room-switcher {
  margin-top: 8px;
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}

.room-btn {
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(148, 163, 184, 0.4);
  background: rgba(15, 23, 42, 0.8);
  color: #e5e7eb;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.18s ease, box-shadow 0.18s ease,
    transform 0.12s ease;
}

.room-btn:hover {
  background: rgba(30, 64, 175, 0.92);
}

.room-btn.active {
  background: linear-gradient(135deg, #a855f7, #22d3ee);
  border-color: transparent;
  box-shadow: 0 0 16px rgba(56, 189, 248, 0.65);
  transform: translateY(-1px);
}

/* حالة الغرفة */

.sleep-room-status {
  margin-top: 10px;
  font-size: 14px;
  text-align: center;
  color: #e5e7eb;
}
/* ======================================
   خريطة السكون – Sleep Map (نسخة ثابتة بالصورة)
   ====================================== */

/* الحاوية العامة للخريطة داخل صفحة sleep.html */
.sleep-map {
  margin: 32px auto 0;
  width: 90%;
  max-width: 1100px;
  height: 340px;
  border-radius: 32px;
  position: relative;
  overflow: hidden;

  /* إطار خفيف وظل ناعم */
  border: 1px solid rgba(148, 163, 184, 0.45);
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.9);

  /* صورة خريطة العالم التي عندك في نفس المجلد */
  background-image: url("sleep-map-bg.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* يضمن أن الـ div الداخلي لو وُجد يملىء الكرت بالكامل
   (يمكنك الإبقاء على <div id="sleep-map"></div> أو إزالته، لن يضر) */
#sleep-map {
  width: 100%;
  height: 100%;
}

/* ============================
       نقاط السكون Sleep Dots
============================ */

/* هذا الكلاس تستعمله realtime.js عند رسم النقطة */
.sleep-dot {
  position: absolute;          /* حتى نستطيع تحديدها بـ left / top */
  width: 10px;
  height: 10px;
  border-radius: 999px;
  transform: translate(-50%, -50%);
  opacity: 0.95;
  transition: transform 0.3s ease, opacity 0.3s ease;
  box-shadow: 0 0 14px rgba(15, 23, 42, 0.9);
}

/* تأثير عند مرور الماوس فوق النقطة */
.sleep-dot:hover {
  transform: translate(-50%, -50%) scale(1.3);
  opacity: 1;
}

/* ألوان النقاط حسب الـ mood الذي يرسله السيرفر */

.sleep-dot[data-mood="Wave"] {
  background-color: #4cc9f0;
  box-shadow: 0 0 16px #4cc9f0;
}

.sleep-dot[data-mood="Stone"] {
  background-color: #6366f1;
  box-shadow: 0 0 16px #6366f1;
}

.sleep-dot[data-mood="Cloud"] {
  background-color: #a855f7;
  box-shadow: 0 0 16px #a855f7;
}

/* ملاحظة الخصوصية أسفل الخريطة */
.privacy-note {
  text-align: center;
  margin-top: 18px;
  font-size: 13px;
  color: var(--text-muted);
}


/* نخفي شعار Mapbox لتبقى نظيفة (يمكن تركه لو تحب) */

.mapboxgl-ctrl-logo,
.mapboxgl-ctrl-attrib {
  display: none !important;
}

/* الماركَر الخاص بنا */

.sleep-marker {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background-color: #38bdf8;
  box-shadow: 0 0 18px rgba(56, 189, 248, 0.95);
}

/* حسب الـMood */

.sleep-marker[data-mood="Wave"] {
  background-color: #4cc9f0;
  box-shadow: 0 0 18px rgba(76, 201, 240, 0.95);
}

.sleep-marker[data-mood="Stone"] {
  background-color: #6366f1;
  box-shadow: 0 0 18px rgba(99, 102, 241, 0.95);
}

.sleep-marker[data-mood="Cloud"] {
  background-color: #a855f7;
  box-shadow: 0 0 18px rgba(168, 85, 247, 0.95);
}

/* ملاحظة الخصوصية */

.privacy-note {
  margin-top: 18px;
  font-size: 13px;
  text-align: center;
  color: var(--text-muted);
}

/* استجابة للأجهزة الصغيرة */

@media (max-width: 640px) {
  .sleep-title {
    font-size: 22px;
  }

  .sleep-desc {
    font-size: 14px;
  }

  #sleep-map {
    height: 280px;
  }

  .page-wrapper {
    padding-inline: 12px;
  }
}
