/**
 * State Leadership Manager — Frontend Premium Styling
 *
 * Custom visual overrides for frontend forms, range sliders, stars ratings,
 * signature canvas boxes, step navigation, and response notices.
 * Fully aligned with the premium My Lyme Story design tokens.
 */

:root {
	--slm-teal: #0b4c42;
	--slm-teal-light: #0f5c50;
	--slm-beige: #faf7f2;
	--slm-offwhite: #fcfbfa;
	--slm-gray: #3d4745;
	--slm-gray-light: #64748b;
	--slm-sage: #e1ece8;
	--slm-sage-dark: #6b8e83;
	--slm-amber: #d97706;
	--slm-amber-hover: #b45309;
	--font-heading: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
	--font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

.slm-form-wrapper {
	background: #ffffff;
	border: 1px solid var(--slm-sage);
	border-radius: 16px;
	padding: 40px;
	box-shadow: 0 10px 30px -10px rgba(11, 76, 66, 0.08);
	font-family: var(--font-body);
	color: var(--slm-gray);
	line-height: 1.6;
	box-sizing: border-box;
	max-width: 800px;
	margin: 0 auto;
}

.slm-form-header {
	margin-bottom: 30px;
	text-align: left;
}
.slm-form-header h2 {
	margin: 0 0 10px;
	font-family: var(--font-heading);
	font-size: 26px;
	font-weight: 700;
	color: var(--slm-teal);
	letter-spacing: -0.5px;
}
.slm-form-header p {
	margin: 0;
	font-size: 15px;
	color: var(--slm-gray-light);
}

.slm-field-group {
	margin-bottom: 24px;
	position: relative;
}

.slm-label {
	display: block;
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 15px;
	margin-bottom: 8px;
	color: var(--slm-teal);
}

.slm-required {
	color: var(--slm-amber);
	margin-left: 3px;
	font-weight: 700;
}

.slm-input, .slm-textarea, .slm-select {
	width: 100%;
	padding: 12px 16px;
	font-size: 14.5px;
	font-family: var(--font-body);
	border: 1px solid var(--slm-sage-dark);
	border-radius: 8px;
	background: #ffffff;
	color: var(--slm-gray);
	box-sizing: border-box;
	transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.slm-input:focus, .slm-textarea:focus, .slm-select:focus {
	outline: none;
	border-color: var(--slm-teal);
	box-shadow: 0 0 0 4px rgba(11, 76, 66, 0.12);
}

.slm-error {
	border-color: #ef4444 !important;
}
.slm-error:focus {
	box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12) !important;
}

.slm-field-error {
	display: block;
	font-size: 12.5px;
	color: #ef4444;
	margin-top: 6px;
	font-weight: 500;
}

.slm-field-desc {
	display: block;
	font-size: 12.5px;
	color: var(--slm-gray-light);
	margin-top: 6px;
}

/* =========================================
   Name Field (First + Last Row Layout)
   ========================================= */
.slm-name-field-row {
	display: flex;
	gap: 20px;
}
.slm-name-field-col {
	flex: 1;
}
.slm-name-sub-label {
	display: block;
	font-size: 12px;
	color: var(--slm-gray-light);
	margin-top: 4px;
}

/* =========================================
   Star Ratings
   ========================================= */
.slm-stars-rating {
	display: inline-flex;
	gap: 6px;
	font-size: 32px;
	cursor: pointer;
}
.slm-star {
	color: #cbd5e1;
	transition: color 0.15s ease, transform 0.1s ease;
}
.slm-star:hover {
	transform: scale(1.1);
}
.slm-star:hover, .slm-star.filled {
	color: var(--slm-amber);
}

/* =========================================
   File Upload Box
   ========================================= */
.slm-file-upload {
	position: relative;
	border: 2px dashed var(--slm-sage-dark);
	border-radius: 12px;
	padding: 30px;
	text-align: center;
	background: var(--slm-beige);
	cursor: pointer;
	transition: all 0.2s ease;
}
.slm-file-upload:hover {
	border-color: var(--slm-teal);
	background: var(--slm-sage);
}
.slm-file-input {
	position: absolute;
	left: 0; top: 0; width: 100%; height: 100%;
	opacity: 0;
	cursor: pointer;
}
.slm-file-icon {
	font-size: 32px;
	display: block;
	margin-bottom: 8px;
	color: var(--slm-teal);
}

/* =========================================
   Progress Bar and Navigation Buttons
   ========================================= */
.slm-progress-bar-wrap {
	margin-bottom: 30px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.slm-progress-bar-track {
	flex: 1;
	height: 10px;
	background: var(--slm-sage);
	border-radius: 99px;
	overflow: hidden;
}
.slm-progress-bar-fill {
	height: 100%;
	background: var(--slm-teal);
	width: 0%;
	transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.slm-progress-bar-text {
	font-size: 13px;
	font-weight: 700;
	color: var(--slm-teal);
	font-family: var(--font-heading);
}

.slm-submit-btn, .slm-next-btn, .slm-prev-btn, .slm-draft-btn, .slm-reset-btn {
	padding: 12px 28px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 99px;
	cursor: pointer;
	border: 2px solid transparent;
	font-family: var(--font-heading);
	transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.slm-submit-btn {
	background: var(--slm-amber);
	color: #ffffff;
	border-color: var(--slm-amber);
}
.slm-submit-btn:hover {
	background: var(--slm-amber-hover);
	border-color: var(--slm-amber-hover);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(217, 119, 6, 0.2);
}

.slm-next-btn {
	background: var(--slm-teal);
	color: #ffffff;
	border-color: var(--slm-teal);
}
.slm-next-btn:hover {
	background: var(--slm-teal-light);
	border-color: var(--slm-teal-light);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(11, 76, 66, 0.15);
}

.slm-prev-btn {
	background: #ffffff;
	border-color: var(--slm-sage-dark);
	color: var(--slm-gray);
}
.slm-prev-btn:hover {
	background: var(--slm-beige);
	border-color: var(--slm-teal);
	color: var(--slm-teal);
}

/* =========================================
   Response Notices
   ========================================= */
.slm-notice {
	padding: 16px 24px;
	border-radius: 12px;
	margin-bottom: 24px;
	display: flex;
	gap: 14px;
	font-size: 14.5px;
	line-height: 1.5;
	align-items: center;
	font-family: var(--font-body);
}
.slm-notice-success {
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	color: #065f46;
}
.slm-notice-error {
	background: #fef2f2;
	border: 1px solid #fca5a5;
	color: #991b1b;
}
.slm-notice-icon {
	font-size: 20px;
	font-weight: 700;
}
