:root {
  --pb-bg: #0b0d0a;
  --pb-panel: #12140f;
  --pb-line: #23261e;
  --pb-lime: #c8ff3d;
  --pb-lime-dark: #9fd420;
}

html {
  color-scheme: dark;
}

body {
  background: radial-gradient(circle at 15% 0%, #1a2312 0%, #0b0d0a 45%, #070805 100%);
  color: #f2f4ec;
  transition: background 0.3s ease, color 0.3s ease;
}

html[data-theme="light"] body {
  background: radial-gradient(circle at 15% 0%, #f4ffd6 0%, #f7f8f2 45%, #ffffff 100%);
  color: #14170f;
}

html[data-theme="light"] .pb-surface {
  background: rgba(255, 255, 255, 0.85) !important;
  border-color: rgba(20, 23, 15, 0.1) !important;
  color: #14170f !important;
}

html[data-theme="light"] .pb-muted {
  color: #4b4f42 !important;
}

::selection {
  background: var(--pb-lime);
  color: #0b0d0a;
}

.pb-scrollbar::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.pb-scrollbar::-webkit-scrollbar-track {
  background: transparent;
}
.pb-scrollbar::-webkit-scrollbar-thumb {
  background: #2a2e21;
  border-radius: 999px;
}
.pb-scrollbar::-webkit-scrollbar-thumb:hover {
  background: var(--pb-lime-dark);
}

@keyframes pb-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.45; }
}
.pb-pulse {
  animation: pb-pulse 1.6s ease-in-out infinite;
}

@keyframes pb-float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-6px); }
}
.pb-float {
  animation: pb-float 4s ease-in-out infinite;
}

/* Small helpers not covered by Tailwind CDN defaults */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
