/* ═══════════════════════════════════════════════════════════════
   Everforest Dark Hard — Homepage Theme
   A warm, intentional dark dashboard with tactile cards,
   prominent search, and clear visual hierarchy.
   ═══════════════════════════════════════════════════════════════ */

/* ── Palette Variables ────────────────────────────────────────── */
:root {
  --ef-bg0:        #272E33;
  --ef-bg1:        #2E383C;
  --ef-bg2:        #374145;
  --ef-bg3:        #414B50;
  --ef-bg4:        #4F5B58;
  --ef-fg:         #D3C6AA;
  --ef-grey:       #859289;
  --ef-muted:      #7A8478;
  --ef-green:      #A7C080;
  --ef-teal:       #7FBBB3;
  --ef-yellow:     #DBBC7F;
  --ef-red:        #E67E80;
  --ef-shadow:     rgba(0, 0, 0, 0.35);
  --ef-shadow-lg:  rgba(0, 0, 0, 0.50);
  --ef-radius-sm:  6px;
  --ef-radius-md:  10px;
  --ef-radius-lg:  14px;
  --ef-transition: 180ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Global Reset ─────────────────────────────────────────────── */
html, body, #__next, main {
  background-color: var(--ef-bg0) !important;
  color: var(--ef-fg) !important;
}

/* ── Page Title / Header ────────────────────────────────────── */
header, [class*="header"], h1[class*="title"], [class*="page-title"] {
  color: var(--ef-fg) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}

/* ── Search Bar — Floating, Prominent ─────────────────────────── */
input[type="text"],
input[class*="search"],
[class*="quicklaunch"] input,
[class*="searchbar"] input,
form[class*="search"] input {
  background-color: var(--ef-bg1) !important;
  color: var(--ef-fg) !important;
  border: 1.5px solid var(--ef-bg4) !important;
  border-radius: var(--ef-radius-lg) !important;
  padding: 0.65rem 1.1rem !important;
  font-size: 0.95rem !important;
  box-shadow:
    0 2px 8px var(--ef-shadow),
    inset 0 1px 0 rgba(255,255,255,0.03) !important;
  transition: border-color var(--ef-transition),
              box-shadow var(--ef-transition) !important;
}

input[type="text"]:focus,
input[class*="search"]:focus,
[class*="quicklaunch"] input:focus,
[class*="searchbar"] input:focus,
form[class*="search"] input:focus {
  border-color: var(--ef-teal) !important;
  box-shadow:
    0 0 0 3px rgba(127, 187, 179, 0.12),
    0 4px 16px var(--ef-shadow) !important;
  outline: none !important;
}

input::placeholder,
input::-moz-placeholder {
  color: var(--ef-muted) !important;
  opacity: 1 !important;
}

/* ── Section Headers ──────────────────────────────────────────── */
[class*="service-group"] h2,
[class*="ServiceGroup"] h2,
[class*="group-name"],
[class*="section-title"],
[class*="group-title"] {
  color: var(--ef-teal) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 0.75rem !important;
  padding-left: 0.25rem !important;
  border-left: 3px solid var(--ef-teal) !important;
  padding-left: 0.6rem !important;
  opacity: 0.9 !important;
}

/* ── Service Cards — Tactile Tiles ────────────────────────────── */
/* Base card styles */
[class*="service-card"],
a[class*="service-card"],
div[class*="service-card"],
[class*="ServiceCard"],
[class*="rounded"][class*="bg-gray"],
[class*="rounded"][class*="bg-neutral"],
[class*="rounded"][class*="bg-zinc"] {
  background-color: var(--ef-bg1) !important;
  border: 1px solid var(--ef-bg3) !important;
  border-radius: var(--ef-radius-md) !important;
  box-shadow:
    0 1px 3px var(--ef-shadow),
    0 1px 2px rgba(0,0,0,0.2) !important;
  transition:
    background-color var(--ef-transition),
    border-color var(--ef-transition),
    transform var(--ef-transition),
    box-shadow var(--ef-transition) !important;
}

/* Card hover — lift + glow */
[class*="service-card"]:hover,
a[class*="service-card"]:hover,
div[class*="service-card"]:hover,
[class*="ServiceCard"]:hover,
[class*="rounded"][class*="bg-gray"]:hover,
[class*="rounded"][class*="bg-neutral"]:hover,
[class*="rounded"][class*="bg-zinc"]:hover {
  background-color: var(--ef-bg2) !important;
  border-color: var(--ef-bg4) !important;
  transform: translateY(-2px) !important;
  box-shadow:
    0 8px 24px var(--ef-shadow-lg),
    0 2px 6px rgba(0,0,0,0.3) !important;
}

/* Card active/pressed state */
[class*="service-card"]:active,
a[class*="service-card"]:active {
  transform: translateY(0px) !important;
  box-shadow:
    0 2px 6px var(--ef-shadow) !important;
}

/* ── Card Content ─────────────────────────────────────────────── */
/* Service name / title */
[class*="service-card"] [class*="text-white"],
[class*="service-card"] [class*="text-gray-100"],
[class*="service-card"] [class*="text-gray-200"],
[class*="ServiceCard"] [class*="font-medium"],
[class*="service-card"] h3,
[class*="service-card"] .title,
[class*="service-name"] {
  color: var(--ef-fg) !important;
  font-weight: 600 !important;
  font-size: 0.92rem !important;
}

/* Service description */
[class*="service-card"] [class*="text-gray-400"],
[class*="service-card"] [class*="text-gray-500"],
[class*="service-card"] [class*="text-sm"],
[class*="service-card"] p,
[class*="description"],
[class*="service-desc"] {
  color: var(--ef-grey) !important;
  font-size: 0.8rem !important;
  line-height: 1.4 !important;
}

/* ── Icons ────────────────────────────────────────────────────── */
[class*="service-card"] img,
[class*="service-card"] svg,
[class*="icon"] {
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3)) !important;
  opacity: 0.92 !important;
  transition: opacity var(--ef-transition) !important;
}

[class*="service-card"]:hover img,
[class*="service-card"]:hover svg,
[class*="service-card"]:hover [class*="icon"] {
  opacity: 1 !important;
}

/* ── Ping / Status Badges ─────────────────────────────────────── */
[class*="text-green"],
[class*="text-emerald"],
[class*="status-up"],
[class*="ping-up"] {
  color: var(--ef-green) !important;
}

[class*="text-red"],
[class*="text-rose"],
[class*="status-down"],
[class*="ping-down"] {
  color: var(--ef-red) !important;
}

[class*="text-yellow"],
[class*="text-amber"],
[class*="status-warn"] {
  color: var(--ef-yellow) !important;
}

/* Ping latency text */
[class*="ping"] [class*="text-xs"],
[class*="latency"],
[class*="response-time"] {
  color: var(--ef-green) !important;
  font-weight: 600 !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.02em !important;
  background-color: rgba(167, 192, 128, 0.08) !important;
  padding: 0.15rem 0.4rem !important;
  border-radius: var(--ef-radius-sm) !important;
}

/* ── Links ─────────────────────────────────────────────────────── */
a,
a[class*="href"],
[class*="service-card"] a {
  color: var(--ef-teal) !important;
  text-decoration: none !important;
  transition: color var(--ef-transition) !important;
}

a:hover,
a[class*="href"]:hover {
  color: var(--ef-green) !important;
}

/* ── Scrollbar ────────────────────────────────────────────────── */
::-webkit-scrollbar {
  width: 8px !important;
  height: 8px !important;
}

::-webkit-scrollbar-track {
  background: var(--ef-bg0) !important;
}

::-webkit-scrollbar-thumb {
  background: var(--ef-bg3) !important;
  border-radius: 4px !important;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--ef-bg4) !important;
}

/* ── General Text Hierarchy ───────────────────────────────────── */
body,
[class*="text-gray-300"],
[class*="text-gray-200"],
[class*="text-gray-100"] {
  color: var(--ef-fg) !important;
}

[class*="text-gray-400"],
[class*="text-gray-500"],
[class*="text-gray-600"] {
  color: var(--ef-grey) !important;
}

[class*="text-gray-700"],
[class*="text-gray-800"] {
  color: var(--ef-muted) !important;
}

/* ── Dividers / Separators ────────────────────────────────────── */
[class*="border-gray"],
[class*="border-neutral"],
hr,
[class*="divider"] {
  border-color: var(--ef-bg3) !important;
}

/* ── Quick Launch / Search Results ────────────────────────────── */
[class*="quicklaunch"],
form[class*="search"],
[class*="search-container"],
[class*="search-wrapper"] {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}

[class*="quicklaunch"] [class*="bg-gray"],
[class*="search-results"] [class*="bg-gray"],
[class*="suggestions"] [class*="bg-gray"] {
  background-color: var(--ef-bg1) !important;
  border: 1px solid var(--ef-bg3) !important;
  border-radius: var(--ef-radius-md) !important;
}

[class*="quicklaunch"] [class*="hover"]:hover,
[class*="search-results"] [class*="hover"]:hover {
  background-color: var(--ef-bg2) !important;
}

/* ── Footer / Version ─────────────────────────────────────────── */
[class*="footer"],
[class*="version"],
[class*="build-info"] {
  color: var(--ef-muted) !important;
  font-size: 0.75rem !important;
}

/* ── Bookmarks / Widgets (if present) ─────────────────────────── */
[class*="bookmark"],
[class*="widget"] {
  background-color: var(--ef-bg1) !important;
  border: 1px solid var(--ef-bg3) !important;
  border-radius: var(--ef-radius-md) !important;
}

[class*="bookmark"]:hover,
[class*="widget"]:hover {
  background-color: var(--ef-bg2) !important;
  border-color: var(--ef-bg4) !important;
}

/* ── Loading / Skeleton States ────────────────────────────────── */
[class*="skeleton"],
[class*="animate-pulse"] {
  background-color: var(--ef-bg2) !important;
}

/* ── Focus Rings (accessibility) ──────────────────────────────── */
*:focus-visible {
  outline: 2px solid var(--ef-teal) !important;
  outline-offset: 2px !important;
}

/* ── Selection ────────────────────────────────────────────────── */
::selection {
  background-color: rgba(127, 187, 179, 0.25) !important;
  color: var(--ef-fg) !important;
}
