.notification {
  position: relative;

  padding: 1.1rem;

  border-radius: 20px;

  overflow: hidden;

  margin-bottom: 1rem;

  background:
    linear-gradient(
      180deg,
      rgba(22, 22, 24, 0.98) 0%,
      rgba(15, 15, 18, 1) 100%
    );

  border: 1px solid rgba(255, 255, 255, 0.04);

  transition:
    transform 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease;

  backdrop-filter: blur(20px);

  &:hover {
    transform: translateY(-2px);

    border-color:
      rgba(
        255,
        255,
        255,
        0.08
      );

    box-shadow:
      0 18px 40px
      rgba(
        0,
        0,
        0,
        0.35
      );
  }

  /* subtle top highlight */

  &::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 1px;

    background:
      linear-gradient(
        90deg,
        transparent,
        rgba(
          247,
          147,
          24,
          0.4
        ),
        transparent
      );
  }

  /* orange glow */

  &::after {
    content: "";

    position: absolute;

    top: -100px;
    right: -100px;

    width: 220px;
    height: 220px;

    border-radius: 50%;

    background:
      radial-gradient(
        circle,
        rgba(
          247,
          147,
          24,
          0.06
        ),
        transparent 70%
      );

    pointer-events: none;
  }
}

/* =====================================
   UNREAD
===================================== */

.notificationUnread {
  border-color:
    rgba(
      247,
      147,
      24,
      0.12
    );

  box-shadow:
    inset 0 0 0 1px
    rgba(
      247,
      147,
      24,
      0.05
    );

  .notification__icon {
    background:
      rgba(
        247,
        147,
        24,
        0.1
      );

    border:
      1px solid
      rgba(
        247,
        147,
        24,
        0.2
      );
  }
}

/* =====================================
   READ
===================================== */

.notificationRead {
  opacity: 0.78;

  .notification__icon {
    background:
      rgba(
        255,
        255,
        255,
        0.04
      );

    border:
      1px solid
      rgba(
        255,
        255,
        255,
        0.05
      );

    color:
      rgba(
        255,
        255,
        255,
        0.45
      );
  }
}

/* =====================================
   BADGE
===================================== */

.notification__badge {
  position: absolute;

  top: 1rem;
  right: 1rem;

  height: 22px;

  padding: 0 0.75rem;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 999px;

  background:
    rgba(
      247,
      147,
      24,
      0.08
    );

  border:
    1px solid
    rgba(
      247,
      147,
      24,
      0.18
    );

  color: #f79318;

  font-size: 0.62rem;

  font-weight: 700;

  letter-spacing: 0.08em;

  text-transform: uppercase;
}

/* small unread dot */

.notificationUnread
  .notification__badge::before {
  content: "";

  width: 6px;
  height: 6px;

  border-radius: 50%;

  background: #f79318;

  margin-right: 6px;

  box-shadow:
    0 0 12px
    rgba(
      247,
      147,
      24,
      0.8
    );
}

/* =====================================
   HEADER
===================================== */

.notification__header {
  margin-bottom: 1rem;
}

.notification__left {
  display: flex;

  align-items: center;

  gap: 0.9rem;
}

.notification__icon {
  width: 46px;
  height: 46px;

  border-radius: 14px;

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 1.15rem;

  color: #f79318;

  flex-shrink: 0;
}

.notification__content {
  flex: 1;

  h4 {
    color: #fff;

    font-size: 0.92rem;

    font-weight: 600;

    line-height: 1.4;

    margin: 0;
  }

  span {
    display: block;

    margin-top: 0.25rem;

    color:
      rgba(
        255,
        255,
        255,
        0.45
      );

    font-size: 0.72rem;
  }
}

/* =====================================
   MESSAGE
===================================== */

.notification__message {
  color:
    rgba(
      255,
      255,
      255,
      0.72
    );

  font-size: 0.84rem;

  line-height: 1.8;

  margin-bottom: 1rem;
}

/* =====================================
   ACTIONS
===================================== */

.notification__actions {
  display: flex;

  gap: 0.7rem;

  flex-wrap: wrap;
}

.notification__read,
.notification__delete {
  height: 38px;

  padding: 0 1rem;

  border-radius: 12px;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 0.45rem;

  font-size: 0.75rem;

  font-weight: 500;

  cursor: pointer;

  transition: all 0.25s ease;
}

/* MARK READ */

.notification__read {
  background:
    rgba(
      34,
      197,
      94,
      0.08
    );

  border:
    1px solid
    rgba(
      34,
      197,
      94,
      0.15
    );

  color: #22c55e;

  &:hover {
    transform: translateY(-1px);

    background:
      rgba(
        34,
        197,
        94,
        0.14
      );
  }
}

/* DELETE */

.notification__delete {
  background:
    rgba(
      239,
      68,
      68,
      0.08
    );

  border:
    1px solid
    rgba(
      239,
      68,
      68,
      0.15
    );

  color: #ef4444;

  &:hover {
    transform: translateY(-1px);

    background:
      rgba(
        239,
        68,
        68,
        0.14
      );
  }
}

/* =====================================
   MOBILE
===================================== */

@media (max-width: 768px) {
  .notification {
    padding: 0.95rem;
  }

  .notification__badge {
    top: 0.75rem;
    right: 0.75rem;
  }

  .notification__icon {
    width: 40px;
    height: 40px;

    font-size: 1rem;
  }

  .notification__content {
    h4 {
      font-size: 0.82rem;
    }

    span {
      font-size: 0.68rem;
    }
  }

  .notification__message {
    font-size: 0.8rem;
  }

  .notification__actions {
    flex-direction: column;
  }

  .notification__read,
  .notification__delete {
    width: 100%;

    min-height: 42px;
  }
}