/**
 * Validation Banner Component
 * 
 * Provides feedback banner for validation messages:
 * - Success state (green with checkmark)
 * - Error/warning state (yellow with warning icon)
 * - List display for multiple violations
 * 
 * Dependencies: variables.css
 * Used by: team-assignment.css (start game validation)
 */

/* ========================================
   Validation Banner
   ======================================== */

/* Validation Banner - always on the left, can shrink and clip */
.validation-banner {
	max-width: clamp(180px, 35vw, 320px);
	min-width: 0;
	flex-shrink: 1; /* Can shrink when space is tight */
	flex-grow: 0; /* Never grows */
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: clamp(6px, 1vh, 10px);
	padding: clamp(8px, 1.2vh, 12px) clamp(10px, 1.5vh, 16px);
	border-radius: var(--border-radius-lg);
	font-size: clamp(0.7rem, 1.3vh, 0.85rem);
	line-height: var(--line-height-tight);
	text-align: left;
	transition: all var(--duration-medium) var(--easing-standard);
	box-shadow: var(--shadow-md);
	overflow: hidden; /* Clip content when too narrow */
}

/* Success state - all conditions met */
.validation-banner.success {
	background-color: var(--color-success-bg);
	color: var(--color-success-text);
	border: var(--border-width) solid var(--color-success-border);
}

.validation-banner.success::before {
	content: '✓ '; /* Checkmark with space */
	font-weight: var(--font-weight-bold);
	font-size: clamp(0.8rem, 1.5vh, 0.95rem);
	flex-shrink: 0;
}

/* Warning state - conditions not met (yellow theme) */
.validation-banner.error {
	background-color: var(--color-warning-bg);
	color: var(--color-warning-text);
	border: var(--border-width) solid var(--color-warning-border);
}

/* Warning icon - vertically centered on left */
.validation-banner.error::before {
	content: '⚠';
	font-size: clamp(1rem, 1.8vh, 1.2rem);
	flex-shrink: 0;
	line-height: 1;
}

/* Banner content wrapper (for list in error state) */
.validation-banner-content {
	flex: 1;
	min-width: 0;
	overflow: hidden; /* Allow clipping */
}

/* List of violations - compact display with text overflow handling */
.validation-banner ul {
	margin: 0;
	padding-left: clamp(14px, 2vh, 18px);
	list-style-type: disc;
}

.validation-banner li {
	margin: clamp(1px, 0.2vh, 2px) 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap; /* Single line with ellipsis */
}

/* ========================================
   Responsive Adjustments
   ======================================== */

@media (max-width: 600px) {
	.validation-banner {
		max-width: clamp(130px, 45vw, 220px);
		padding: clamp(6px, 1vh, 10px) clamp(8px, 1.2vh, 12px);
		font-size: clamp(0.65rem, 1.2vh, 0.75rem);
	}
}