/* ==========================
   Theme Variables
========================== */
:root[data-theme="light"] {
  --text: hsl(255, 20%, 8%);
  --text-contrast: hsl(0, 0%, 100%);
  --background: hsl(270, 33%, 99%);
  --primary: hsl(255, 52%, 54%);
  --secondary: hsl(255, 67%, 70%);
  --accent: hsl(255, 83%, 64%);
  --button-backgorund: hsl(0, 0%, 0%);
  --button-color: hsl(0, 0%, 100%);
  --shadow-color: hsl(0, 0%, 0%, 0.1);
}

:root[data-theme="dark"] {
  --text: hsl(255, 20%, 92%);
  --text-contrast: hsl(0, 0%, 0%);
  --background: hsl(300, 20%, 1%);
  --primary: hsl(255, 52%, 46%);
  --secondary: hsl(255, 67%, 30%);
  --accent: hsl(255, 83%, 36%);
  --button-backgorund: hsl(0, 0%, 100%);
  --button-color: hsl(0, 0%, 0%);
  --shadow-color: hsl(0, 0%, 99%, 0.1);
}

/* ==========================
   Layout
========================== */
main {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 1.5rem;
  padding: 1.5rem;
  width: 81dvw;
  max-width: 81dvw;
  margin: 0 auto;
  box-sizing: border-box;
  transition: all 0.3s ease;
  background-color: transparent;
}

@media(max-width: 1300px) {
  main {
    justify-content: center;
  }
}

/* ==========================
   Patient Cards
========================== */
.mini-card {
  border-radius: 12px;
  border: 1px solid var(--secondary);
  box-shadow: 0 0 6px var(--shadow-color);
  padding: 1rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 0 1 300px;
  gap: 0.5rem;
  background-color: var(--background);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.3s ease;
  cursor: pointer;
}

.mini-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px var(--accent);
  border-color: var(--primary);
}

.mini-card h3 {
  font-size: 1.2rem;
  font-weight: 600;
  transition: color 0.3s ease;
}

.mini-card .info-row {
  margin: 0 0 0.5rem;
  display: flex;
  justify-content: space-between;
  font-size: 0.95rem;
  color: var(--text);
  transition: color 0.3s ease;
}

.mini-card .phone {
  margin-bottom: 1rem;
}

.mini-card button{
  max-width: 7rem;
}

/* ==========================
   Filter Bar
========================== */
.filter-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  margin: 2.5rem auto 0.5rem;
  width: 80dvw;
  max-width: 80dvw;
  border-radius: 10px;
  border: 1px solid var(--secondary);
  box-shadow: 0 4px 16px var(--shadow-color);
  background-color: var(--background);
  transition: box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease;
}

/* ==========================
   Search Input
========================== */
.filter-bar input[type="text"] {
  flex: 1;
  max-width: 300px;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--secondary);
  border-radius: 6px;
  font-size: 0.9rem;
  outline: none;
  transition: border 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
  background-color: var(--background);
  color: var(--text);
}

.filter-bar input[type="text"]:hover {
  box-shadow: 0 0 6px var(--shadow-color);
}

.filter-bar input[type="text"]:focus {
  border-color: var(--primary);
  box-shadow: 0 0 6px var(--primary);
  background-color: var(--background);
}

button, .add-btn {
  border-radius: 8px;
  font-weight: 500;
  transition: box-shadow 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}

button:hover, .add-btn:hover {
  box-shadow: 0 0 6px var(--accent);
}

/* Add button specifically */
.add-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 0.75rem;
  border: 1.5px solid black;
}
.add-btn i{
  color: var(--text-contrast);
}
