:root {
  --joya-primary: #26c0b1;
  --joya-primary-dark: #1b8b80;
}

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.joya-sidebar {
  transition: transform .25s ease, box-shadow .25s ease;
}

.joya-mobile-toggle,
.joya-notification-fab {
  position: fixed;
  z-index: 60;
  width: 44px;
  height: 44px;
  border-radius: 9999px;
  border: none;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  background: #fff;
  cursor: pointer;
}

.joya-mobile-toggle { right: 16px; bottom: 16px; }
.joya-notification-fab { left: 16px; bottom: 16px; }

.joya-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 20px;
  height: 20px;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
}

.joya-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .45);
  z-index: 49;
  display: none;
}

.joya-notification-panel {
  position: fixed;
  left: 16px;
  bottom: 72px;
  width: min(380px, calc(100vw - 32px));
  max-height: 70vh;
  overflow: auto;
  background: #fff;
  border-radius: 18px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 18px 50px rgba(15, 23, 42, .16);
  z-index: 60;
  display: none;
}

.joya-notification-item { border-bottom: 1px solid #f1f5f9; }
.joya-notification-item:last-child { border-bottom: 0; }
.joya-notification-unread { background: #f8fafc; }

@media (max-width: 1024px) {
  .joya-sidebar {
    position: fixed !important;
    top: 0;
    right: 0;
    height: 100vh;
    z-index: 50;
    transform: translateX(105%);
    width: min(320px, 85vw) !important;
    overflow-y: auto;
    box-shadow: -20px 0 50px rgba(0,0,0,.14);
  }

  html[dir="ltr"] .joya-sidebar {
    right: auto;
    left: 0;
    transform: translateX(-105%);
  }

  body.joya-sidebar-open .joya-sidebar,
  html[dir="ltr"] body.joya-sidebar-open .joya-sidebar {
    transform: translateX(0);
  }

  body.joya-sidebar-open .joya-overlay {
    display: block;
  }

  .joya-main-content {
    width: 100%;
    min-width: 0;
  }
}
