/* Families Page - Assignment Dashboard Styling */
/* Layout Controls */
.layout-controls {
	display: flex;
	gap: 10px;
	margin-bottom: 20px;
	justify-content: flex-end;
}

.layout-btn {
	padding: 8px 15px;
	border: 1px solid #ddd;
	background: white;
	cursor: pointer;
	border-radius: 4px;
	transition: all 0.2s;
}

.layout-btn.active {
	background: var(--dark-green);
	color: white;
	border-color: var(--dark-green);
}

.layout-btn:hover {
	background: var(--light-green);
	color: white;
}

/* Family Stats */
.family-stats {
	display: flex;
	gap: 15px;
}

.stat-badge {
	background: var(--gold);
	color: var(--dark-green);
	padding: 5px 12px;
	border-radius: 20px;
	font-size: 0.9rem;
	font-weight: 600;
}

/* Layout 1: Current 4-wide grid */
.families-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 20px;
}

.family-card {
	background: white;
	border-radius: 8px;
	padding: 20px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	cursor: pointer;
	transition: all 0.2s;
	border-left: 4px solid var(--light-green);
}

.family-card:hover {
	box-shadow: 0 4px 8px rgba(0,0,0,0.15);
	transform: translateY(-2px);
}

.family-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 10px;
}

.family-name {
	color: var(--dark-green);
	margin: 0;
	font-size: 1.2rem;
}

.family-actions {
	display: flex;
	gap: 5px;
}

.family-parents {
	margin-bottom: 15px;
}

.parent-info {
	margin-bottom: 5px;
	font-size: 0.9rem;
}

.family-students {
	margin-bottom: 15px;
}

.student-count {
	font-weight: 600;
	color: var(--dark-green);
	margin-bottom: 5px;
}

.student-names {
	font-size: 0.9rem;
	color: #666;
}

.family-meta {
	border-top: 1px solid #eee;
	padding-top: 10px;
	color: #999;
}

/* Layout 2: Compact 8-wide grid */
.families-compact {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 15px;
}

.family-card-compact {
	background: white;
	border-radius: 6px;
	padding: 15px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	cursor: pointer;
	transition: all 0.2s;
	border-left: 3px solid var(--light-green);
	text-align: center;
}

.family-card-compact:hover {
	box-shadow: 0 4px 8px rgba(0,0,0,0.15);
	transform: translateY(-2px);
}

.family-name-compact {
	color: var(--dark-green);
	margin: 0 0 10px 0;
	font-size: 1rem;
	font-weight: 600;
}

.student-count-compact {
	background: var(--cream);
	color: var(--dark-green);
	padding: 5px 10px;
	border-radius: 12px;
	font-size: 0.9rem;
	font-weight: 600;
	display: inline-block;
}

.family-actions-compact {
	margin-top: 10px;
}

/* Layout 3: Row layout */
.families-rows {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.family-row {
	background: white;
	padding: 20px;
	cursor: pointer;
	transition: all 0.2s;
	border-left: 4px solid var(--light-green);
	display: flex;
	align-items: center;
	gap: 20px;
}

.family-row:hover {
	background: var(--cream);
}

.family-row + .family-row {
	border-top: 1px solid #eee;
}

.family-name-row {
	color: var(--dark-green);
	font-size: 1.1rem;
	font-weight: 600;
	min-width: 200px;
	margin: 0;
}

.family-info-row {
	flex: 1;
	display: grid;
	grid-template-columns: 2fr 2fr 1fr 1fr;
	gap: 20px;
	align-items: center;
}

.parent-info-row {
	font-size: 0.9rem;
}

.parent-info-row strong {
	display: block;
	color: var(--dark-green);
}

.students-info-row {
	font-size: 0.9rem;
}

.meta-info-row {
	font-size: 0.85rem;
	color: #666;
}

.family-actions-row {
	display: flex;
	gap: 5px;
}

/* Hide inactive layouts */
.families-grid.hidden,
.families-compact.hidden,
.families-rows.hidden {
	display: none;
}

.header-actions {
	display: flex;
	gap: 10px;
	align-items: center;
}

.btn-danger {
	background: #dc3545;
	color: white;
	border: none;
	padding: 10px 16px;
	border-radius: 4px;
	cursor: pointer;
	font-weight: 500;
	transition: background 0.2s;
}

.btn-danger:hover {
	background: #c82333;
}

.family-name-section {
	display: flex;
	align-items: center;
	gap: 10px;
}

.family-name-display {
	display: flex;
	align-items: center;
	gap: 10px;
}

.family-name-display h1 {
	margin: 0;
	padding: 0;
}

.btn-edit-inline {
	background: transparent;
	border: 1px solid #ddd;
	color: #666;
	padding: 8px;
	border-radius: 4px;
	cursor: pointer;
	transition: all 0.2s;
}

.btn-edit-inline:hover {
	background: #f5f5f5;
	color: #333;
}

.family-name-edit {
	display: flex;
	align-items: center;
}

.inline-edit-form {
	display: flex;
	align-items: center;
	gap: 8px;
}

.family-name-input {
	font-size: 1.8rem;
	font-weight: bold;
	padding: 8px;
	border: 2px solid var(--light-green);
	border-radius: 4px;
	min-width: 300px;
}

.btn-save-inline {
	background: var(--success, #28a745);
	border: none;
	color: white;
	padding: 8px 12px;
	border-radius: 4px;
	cursor: pointer;
}

.btn-cancel-inline {
	background: #6c757d;
	border: none;
	color: white;
	padding: 8px 12px;
	border-radius: 4px;
	cursor: pointer;
}

.btn-save-inline:hover {
	background: #218838;
}

.btn-cancel-inline:hover {
	background: #5a6268;
}

.student-name-link {
	color: inherit;
	text-decoration: none;
}

.student-name-link:hover {
	color: var(--light-green);
	text-decoration: underline;
}

.family-detail-card {
	background: white;
	border-radius: 8px;
	padding: 20px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	margin-bottom: 20px;
}

.family-details-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 20px;
	margin-bottom: 30px;
}

.students-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
	gap: 20px;
}

.student-detail-card {
	background: white;
	border-radius: 8px;
	padding: 20px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	border-left: 4px solid var(--light-green);
}

.detail-field {
	margin-bottom: 15px;
}

.detail-field strong {
	display: inline-block;
	min-width: 120px;
	font-weight: 600;
}

.house-badge {
	color: white;
	padding: 2px 8px;
	border-radius: 12px;
	font-size: 0.8rem;
	margin-left: 10px;
}

.class-list {
	margin: 5px 0;
	padding-left: 20px;
}

.class-list li {
	margin-bottom: 5px;
}

.special-needs-text, .family-answer {
	margin-top: 8px;
	padding: 10px;
	background: #f8f9fa;
	border-radius: 4px;
	border-left: 3px solid #e9ecef;
}

.section {
	margin-top: 30px;
}

.section h2 {
	color: var(--dark-green);
	border-bottom: 2px solid var(--gold);
	padding-bottom: 10px;
	margin-bottom: 20px;
}

.family-questions {
	max-width: 100%;
}

.btn-map {
	background: var(--gold);
	color: black;
	text-decoration: none;
	padding: 6px 12px;
	border-radius: 4px;
	font-size: 0.9rem;
}

.btn-map:hover {
	background: var(--cream);
	color: black;
}

@media (max-width: 768px) {
	.family-name-section {
		flex-direction: column;
		align-items: flex-start;
		gap: 15px;
	}
	
	.family-name-input {
		font-size: 1.4rem;
		min-width: 250px;
	}
	
	.family-details-grid {
		grid-template-columns: 1fr;
	}
	
	.students-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.dashboard-header {
		flex-direction: column;
		gap: 15px;
	}
	
	.header-actions {
		width: 100%;
		justify-content: flex-start;
	}
}

/* Empty state */
.empty-state {
	text-align: center;
	padding: 60px 20px;
	color: #666;
}

.empty-state h3 {
	color: var(--dark-green);
	margin-bottom: 10px;
}

/* Responsive */
@media (max-width: 768px) {
	.families-grid {
		grid-template-columns: 1fr;
	}
	
	.families-compact {
		grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	}
	
	.family-info-row {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}
	
	.layout-controls {
		justify-content: center;
	}
}
/* Override existing grid layout to match assignment cards */
.families-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1.5rem;
}

.family-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  border: 1px solid #e1e8ed;
  overflow: hidden;
  transition: all 0.3s ease;
  cursor: pointer;
}

.family-card:hover {
  box-shadow: 0 8px 30px rgba(0,0,0,0.15);
  transform: translateY(-4px);
}

.family-header {
  padding: 10px;
  border-bottom: 1px solid #f1f3f4;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.family-name {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--dark-green);
  margin: 0;
  font-family: 'Stoke', serif;
}

.family-actions {
  display: flex;
  gap: 0.5rem;
}

.family-card .btn-small {
  padding: 6px 12px;
  font-size: 0.75rem;
  border-radius: 6px;
}

/* Family content sections */
.family-parents,
.family-students {
  padding: 0 10px 10px;
}

.family-students {
  border-bottom: 1px solid #f1f3f4;
}

.parent-info {
  margin-bottom: 0.75rem;
  font-size: 0.9rem;
  line-height: 1.4;
}

.parent-info strong {
  color: var(--dark-green);
  font-weight: 600;
  display: block;
  margin-bottom: 0.25rem;
}

.student-count {
  font-weight: 600;
  color: var(--dark-green);
  margin-bottom: 0.5rem;
  font-size: 1rem;
}

.student-names {
  font-size: 0.9rem;
  color: #666;
  line-height: 1.4;
}

.family-meta {
  padding: 5px 10px;
  background: #f8f9fa;
  border-top: none;
  margin: 0;
}

.family-meta small {
  color: #666;
  font-size: 0.85rem;
  font-weight: 500;
}

/* Header stats styling */
.family-stats {
  display: flex;
  gap: 1rem;
  align-items: center;
}

.stat-badge {
  background: linear-gradient(135deg, var(--gold), var(--tan));
  color: var(--dark-green);
  padding: 8px 16px;
  border-radius: 20px;
  font-size: 0.9rem;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(230, 197, 102, 0.3);
}

/* Layout controls styling */
.layout-controls {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 2rem;
  justify-content: flex-end;
  align-items: center;
}

.layout-btn {
  padding: 10px 16px;
  border: 2px solid #e1e8ed;
  background: white;
  cursor: pointer;
  border-radius: 8px;
  transition: all 0.3s ease;
  font-weight: 500;
  font-size: 0.9rem;
  color: #666;
}

.layout-btn.active {
  background: var(--dark-green);
  color: white;
  border-color: var(--dark-green);
  box-shadow: 0 2px 8px rgba(33, 59, 45, 0.2);
}

.layout-btn:hover:not(.active) {
  background: var(--cream);
  border-color: var(--gold);
  color: var(--dark-green);
}

/* Compact layout styling */
.families-compact {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}

.family-card-compact {
  background: white;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  border: 1px solid #e1e8ed;
  padding: 1.5rem;
  text-align: center;
  transition: all 0.3s ease;
  cursor: pointer;
}

.family-card-compact:hover {
  box-shadow: 0 8px 30px rgba(0,0,0,0.15);
  transform: translateY(-4px);
}

.family-name-compact {
  color: var(--dark-green);
  margin: 0 0 1rem 0;
  font-size: 1.1rem;
  font-weight: 600;
  font-family: 'Stoke', serif;
}

.student-count-compact {
  background: linear-gradient(135deg, var(--light-green), var(--dark-green));
  color: white;
  padding: 8px 16px;
  border-radius: 20px;
  font-size: 0.9rem;
  font-weight: 600;
  display: inline-block;
  box-shadow: 0 2px 8px rgba(53, 89, 70, 0.3);
}

/* Row layout styling */
.families-rows {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: #e1e8ed;
  border-radius: 12px;
  overflow: hidden;
}

.family-row {
  background: white;
  padding: 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease;
  border-left: 4px solid var(--gold);
  display: flex;
  align-items: center;
  gap: 2rem;
}

.family-row:hover {
  background: var(--cream);
  border-left-color: var(--dark-green);
}

.family-row:first-child {
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
}

.family-row:last-child {
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
}

.family-name-row {
  color: var(--dark-green);
  font-size: 1.2rem;
  font-weight: 600;
  min-width: 200px;
  margin: 0;
  font-family: 'Stoke', serif;
}

.family-info-row {
  flex: 1;
  display: grid;
  grid-template-columns: 2fr 2fr 1fr 1fr;
  gap: 2rem;
  align-items: center;
}

.parent-info-row {
  font-size: 0.9rem;
  line-height: 1.4;
}

.parent-info-row strong {
  display: block;
  color: var(--dark-green);
  font-weight: 600;
  margin-bottom: 0.25rem;
}

.students-info-row {
  font-size: 0.9rem;
  line-height: 1.4;
}

.students-info-row strong {
  color: var(--dark-green);
  font-weight: 600;
}

.meta-info-row {
  font-size: 0.85rem;
  color: #666;
  line-height: 1.4;
}

/* Empty state styling */
.empty-state {
  text-align: center;
  padding: 4rem 2rem;
  color: #666;
  background: white;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.empty-state h3 {
  color: var(--dark-green);
  margin-bottom: 1rem;
  font-family: 'Stoke', serif;
  font-size: 1.5rem;
}

/* Responsive adjustments */
@media (max-width: 1200px) {
  .families-grid {
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
}

@media (max-width: 768px) {
  .families-grid {
	grid-template-columns: 1fr;
	gap: 1rem;
  }
  
  .families-compact {
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  }
  
  .family-info-row {
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
  }
  
  .layout-controls {
	justify-content: center;
	flex-wrap: wrap;
  }
  
  .family-header {
	padding: 1rem 1rem 0.75rem 1rem;
  }
  
  .family-parents,
  .family-students {
	padding: 0 1rem 0.75rem 1rem;
  }
  
  .family-meta {
	padding: 0.75rem 1rem;
  }
  
  .family-row {
	padding: 1rem;
	gap: 1rem;
  }
  
  .family-name-row {
	min-width: auto;
	font-size: 1.1rem;
  }
}

@media (max-width: 480px) {
  .layout-controls {
	width: 100%;
  }
  
  .layout-btn {
	flex: 1;
	text-align: center;
  }
  
  .family-stats {
	flex-direction: column;
	gap: 0.5rem;
	align-items: flex-start;
  }
  
  .family-info-row {
	grid-template-columns: 1fr;
	gap: 0.75rem;
  }
}