/* ==========================================
   FLASH MESSAGES
   ========================================== */
.flash-list {
	display: flex;
	flex-direction: column;
	gap: var(--gap-md);
	margin-bottom: 16px;
}

.flash {
	border-radius: var(--radius);
	padding: 14px 40px 14px 18px;
	border: 1px solid var(--border);
	background: var(--glass);
	border-left: 4px solid var(--border);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	animation: flashSlideIn 0.3s ease-out forwards;
	position: relative;
}

.flash__close {
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	background: none;
	border: none;
	cursor: pointer;
	color: inherit;
	opacity: 0.5;
	font-size: var(--font-2xl);
	line-height: 1;
	padding: 4px 6px;
	border-radius: var(--radius-sm);
	transition: opacity 0.15s;
}

.flash__close:hover {
	opacity: 1;
}

@keyframes flashSlideIn {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.flash-success {
	border-color: rgba(var(--success-rgb), 0.15);
	color: var(--success);
	border-left-color: var(--success);
	background: rgba(var(--success-rgb), 0.06);
}

.flash-error {
	border-color: rgba(var(--error-rgb), 0.15);
	color: var(--error);
	border-left-color: var(--error);
	background: rgba(var(--error-rgb), 0.06);
}

/* ==========================================
   FORMS
   ========================================== */
.form {
	display: grid;
	gap: var(--gap-xl);
}

.form__label {
	font-weight: 600;
	font-size: var(--font-small);
}

.form__row {
	display: flex;
	gap: var(--gap-xl);
	align-items: center;
	flex-wrap: wrap;
}

.input {
	flex: 1;
}

select.input {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 100%;
	padding: 8px 36px 8px 14px;
	border-radius: var(--radius);
	border: 1px solid var(--border);
	background-color: var(--input-bg);
	color: var(--text);
	font: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--muted) 50%),
		linear-gradient(135deg, var(--muted) 50%, transparent 50%);
	background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
	background-size: 6px 6px;
	background-repeat: no-repeat;
}

select.input:focus {
	border-color: var(--accent);
	box-shadow: var(--ring);
	outline: none;
}

.form__row .btn {
	white-space: nowrap;
}

label {
	display: grid;
	gap: var(--gap-sm);
	margin: 10px 0;
	font-weight: 500;
}

input {
	width: 100%;
	padding: 8px 14px;
	border-radius: var(--radius);
	border: 1px solid var(--border);
	outline: none;
	background: var(--input-bg);
	color: var(--text);
	font: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

textarea {
	width: 100%;
	padding: 8px 14px;
	border-radius: var(--radius);
	border: 1px solid var(--border);
	outline: none;
	resize: vertical;
	background: var(--input-bg);
	color: var(--text);
	font: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

input:focus,
textarea:focus {
	border-color: var(--accent);
	box-shadow: var(--ring);
}

.form--inline {
	display: inline;
}

