/* Front-end: progress bar and form layout */

.fs-multistep-form {

	max-width: 560px;

	margin: 1.5rem auto;

	padding: 1.25rem;

	border: 1px solid #e2e8f0;

	border-radius: 8px;

	background: #fff;

	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);

}



.fs-step-error {

	background: #fef2f2;

	border: 1px solid #fecaca;

	color: #991b1b;

	padding: 0.65rem 0.85rem;

	border-radius: 6px;

	margin-bottom: 1rem;

	font-size: 0.95rem;

	outline: none;

}



.fs-progress {

	height: 8px;

	background: #e2e8f0;

	border-radius: 999px;

	overflow: hidden;

	margin-bottom: 1.25rem;

}



.fs-progress-bar {

	height: 100%;

	background: linear-gradient(90deg, #2563eb, #38bdf8);

	width: 33%;

	transition: width 0.25s ease;

}



.fs-step-legend {

	font-size: 1.05rem;

	margin: 0 0 1rem;

	padding: 0;

	border: none;

}



.fs-field label,

.fs-file-label {

	display: block;

	font-weight: 600;

	margin-bottom: 0.35rem;

}



.fs-field input[type='text'],

.fs-field input[type='email'],

.fs-field input[type='tel'],

.fs-field select.fs-select,

.fs-field textarea.fs-textarea {

	width: 100%;

	box-sizing: border-box;

	padding: 0.5rem 0.65rem;

	border: 1px solid #cbd5e1;

	border-radius: 6px;

	background-color: #fff;

}



.fs-field-type-tel-intl .fs-tel-intl-fieldset {

	border: none;

	margin: 0;

	padding: 0;

	min-width: 0;

}



.fs-field-type-tel-intl .fs-tel-intl-legend {

	font-weight: 600;

	margin: 0 0 0.35rem;

	padding: 0;

	font-size: 1rem;

}



.fs-field-type-tel-intl .fs-tel-intl {

	display: flex;

	flex-direction: row;

	align-items: stretch;

	width: 100%;

	box-sizing: border-box;

	border: 1px solid #cbd5e1;

	border-radius: 6px;

	background: #fff;

	overflow: hidden;

}



.fs-field-type-tel-intl .fs-tel-intl-code {

	flex: 0 1 auto;

	min-width: 0;

	border-inline-end: 1px solid #cbd5e1;

	display: flex;

	align-items: stretch;

}



.fs-field-type-tel-intl .fs-tel-intl-select-wrap {

	display: flex;

	align-items: stretch;

	min-width: 0;

	max-width: 13.5rem;

}



.fs-field-type-tel-intl .fs-tel-intl-select {

	width: 100%;

	min-width: 7.5rem;

	margin: 0;

	border: none;

	border-radius: 0;

	box-shadow: none;

	background-color: #f8fafc;

	padding: 0.5rem 0.45rem 0.5rem 0.65rem;

}



.fs-field-type-tel-intl .fs-tel-intl-number {

	flex: 1 1 auto;

	min-width: 0;

	display: flex;

	align-items: stretch;

}



.fs-field-type-tel-intl .fs-tel-intl-input {

	width: 100%;

	margin: 0;

	border: none;

	border-radius: 0;

	box-shadow: none;

	padding: 0.5rem 0.65rem;

	background-color: #fff;

}



.fs-field-type-tel-intl .fs-tel-intl-input:focus,

.fs-field-type-tel-intl .fs-tel-intl-select:focus {

	outline: none;

	box-shadow: inset 0 0 0 2px rgba(37, 99, 235, 0.35);

}



@media (max-width: 420px) {

	.fs-field-type-tel-intl .fs-tel-intl {

		flex-direction: column;

	}

	.fs-field-type-tel-intl .fs-tel-intl-code {

		border-inline-end: none;

		border-bottom: 1px solid #cbd5e1;

	}

	.fs-field-type-tel-intl .fs-tel-intl-select-wrap {

		max-width: none;

		width: 100%;

	}

	.fs-field-type-tel-intl .fs-tel-intl-select {

		max-width: none;

		width: 100%;

	}

}



.fs-radio-fieldset {

	border: none;

	margin: 0;

	padding: 0;

}



.fs-radio-legend {

	font-weight: 600;

	margin: 0 0 0.75rem;

	padding: 0;

	font-size: 1rem;

}



.fs-radio-label {

	display: flex;

	align-items: flex-start;

	gap: 0.5rem;

	font-weight: normal;

	margin: 0 0 0.5rem;

	cursor: pointer;

}



.fs-radio-label input {

	margin-top: 0.2rem;

}



.fs-file-input-wrap {

	margin: 0.35rem 0 0;

}



.fs-file-stack {

	margin: 0.25rem 0 0;

}



.fs-file-preview {

	margin: 0.65rem 0 0;

}



.fs-file-preview-frame {

	position: relative;

	display: inline-block;

	max-width: 100%;

	vertical-align: top;

}



.fs-file-preview--confirmed {

	outline: 2px solid #22c55e;

	outline-offset: 3px;

	border-radius: 10px;

}



.fs-file-preview-actions {

	position: absolute;

	top: 8px;

	right: 8px;

	z-index: 2;

	display: flex;

	gap: 6px;

}



.fs-file-action {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	width: 36px;

	height: 36px;

	padding: 0;

	border: none;

	border-radius: 50%;

	cursor: pointer;

	background: rgba(255, 255, 255, 0.96);

	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.14);

	color: #334155;

	transition: background 0.15s ease, color 0.15s ease;

}



.fs-file-action:hover {

	background: #fff;

	color: #0f172a;

}



.fs-file-action:focus-visible {

	outline: 2px solid #2563eb;

	outline-offset: 2px;

}



.fs-file-preview--confirmed .fs-file-action-confirm,

.fs-file-action-confirm.fs-file-action--active {

	background: #22c55e;

	color: #fff;

	box-shadow: 0 1px 3px rgba(34, 197, 94, 0.4);

}



.fs-file-preview--confirmed .fs-file-action-confirm:hover,

.fs-file-action-confirm.fs-file-action--active:hover {

	color: #fff;

}



.fs-file-action-remove:hover {

	color: #b91c1c;

}



.fs-file-action-icon {

	display: flex;

	line-height: 0;

}



.fs-file-preview-main {

	min-width: 120px;

}



.fs-file-preview-main img {

	display: block;

	max-width: 100%;

	max-height: 220px;

	width: auto;

	height: auto;

	border-radius: 8px;

	border: 1px solid #e2e8f0;

	background: #f8fafc;

}



.fs-file-preview-main audio {

	display: block;

	width: 100%;

	max-width: 360px;

}



.fs-file-preview-doc {

	padding: 0.85rem 1rem;

	padding-right: 5.5rem;

	background: #f8fafc;

	border: 1px solid #e2e8f0;

	border-radius: 8px;

	font-size: 0.9rem;

	word-break: break-word;

	max-width: 360px;

	min-height: 48px;

	line-height: 1.4;

	color: #0f172a;

}



.fs-field-hint {

	margin: 0.45rem 0 0;

	font-size: 0.9rem;

	color: #64748b;

	line-height: 1.45;

}



.fs-actions {

	display: flex;

	flex-wrap: wrap;

	gap: 0.5rem;

	margin-top: 1.25rem;

	justify-content: flex-end;

}



.fs-block-summary {

	margin: 0;

	padding: 12px;

	background: #f6f7f7;

	border: 1px dashed #c3c4c7;

	border-radius: 4px;

}



.fs-nice-fieldset {

	border: none;

	margin: 0;

	padding: 0;

	min-width: 0;

}



.fs-nice-legend {

	font-weight: 600;

	margin: 0 0 0.75rem;

	padding: 0;

	font-size: 1rem;

}



.fs-nice-summary {

	margin: 0 0 1rem;

	padding: 0.75rem 1rem;

	background: #f1f5f9;

	border: 1px solid #e2e8f0;

	border-radius: 8px;

}



.fs-nice-summary-heading {

	margin: 0 0 0.5rem;

	font-size: 0.95rem;

	font-weight: 600;

	color: #0f172a;

}



.fs-nice-summary-list {

	margin: 0;

	padding-inline-start: 1.25rem;

}



.fs-nice-summary-line {

	margin: 0.35rem 0;

	font-size: 0.875rem;

	line-height: 1.45;

	color: #1e293b;

}



.fs-nice-table-wrap {

	overflow-x: auto;

	-webkit-overflow-scrolling: touch;

	margin: 0 -0.15rem;

	padding: 0 0.15rem;

	padding-bottom: 0.25rem;

}



.fs-nice-row,

.fs-nice-grid {

	overflow: visible;

}



.fs-visually-hidden {

	position: absolute;

	width: 1px;

	height: 1px;

	padding: 0;

	margin: -1px;

	overflow: hidden;

	clip: rect(0, 0, 0, 0);

	white-space: nowrap;

	border: 0;

}



.fs-nice-card {

	background: #f8fafc;

	border: 1px solid #e2e8f0;

	border-radius: 14px;

	box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);

	padding: 0.85rem 1rem 1rem;

}



.fs-nice-card-body {

	display: flex;

	flex-direction: column;

	align-items: stretch;

	gap: 1rem;

}



.fs-nice-card-main {

	flex: 1;

	min-width: 0;

}



.fs-nice-card-aside {

	flex: 0 0 auto;

	min-width: 0;

}



.fs-nice-grid-wrap {

	min-width: 0;

}



.fs-nice-grid {

	list-style: none;

	margin: 0;

	padding: 0;

	display: grid;

	grid-template-columns: repeat(7, minmax(0, 1fr));

	gap: 0.35rem 0.45rem;

}



.fs-nice-mobile-picker {

	display: none;

}



.fs-nice-mobile-select-label {

	display: block;

	font-size: 0.9rem;

	font-weight: 600;

	color: #0f172a;

	margin: 0 0 0.4rem;

}



.fs-nice-mobile-multiselect {

	display: block;

	width: 100%;

	max-width: 100%;

	box-sizing: border-box;

	margin: 0;

	padding: 0.45rem 0.5rem;

	font-size: 0.88rem;

	line-height: 1.35;

	color: #0f172a;

	background: #fff;

	border: 1px solid #cbd5e1;

	border-radius: 10px;

	min-height: 9rem;

}



.fs-nice-mobile-hint {

	margin: 0.45rem 0 0;

	font-size: 0.78rem;

	line-height: 1.45;

	color: #64748b;

}



@media (min-width: 768px) {

	.fs-nice-card-body {

		flex-direction: row;

		align-items: stretch;

		gap: 1rem 1.15rem;

	}



	.fs-nice-card-aside {

		flex: 0 0 30%;

		max-width: 18rem;

		min-width: 11rem;

	}

}



@media (max-width: 767px) {

	.fs-nice-grid {

		grid-template-columns: repeat(2, minmax(0, 1fr));

	}

}



@media (max-width: 479px) {

	.fs-nice-grid-wrap {

		display: none;

	}



	.fs-nice-mobile-picker {

		display: block;

	}



	.fs-nice-card-aside {

		max-width: none;

	}

}



.fs-nice-detail-panel {

	min-height: 4.5rem;

	padding: 0.75rem 0.85rem;

	background: #ffffff;

	border: 1px solid #e2e8f0;

	border-radius: 12px;

	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);

}



.fs-nice-detail-placeholder {

	margin: 0;

	font-size: 0.85rem;

	line-height: 1.5;

	color: #94a3b8;

	font-style: italic;

}



.fs-nice-detail-body {

	margin: 0;

}



.fs-nice-detail-body[hidden] {

	display: none;

}



.fs-nice-detail-num {

	display: block;

	font-size: 1.1rem;

	font-weight: 700;

	color: #1d4ed8;

	margin-bottom: 0.4rem;

}



.fs-nice-detail-text {

	margin: 0;

	font-size: 0.9rem;

	font-weight: 500;

	line-height: 1.55;

	color: #0f172a;

}



.fs-nice-row {

	margin: 0;

}



.fs-nice-item {

	position: relative;

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: 0.35rem;

	cursor: default;

	font-weight: normal;

	margin: 0;

	line-height: 1.2;

	width: 100%;

	box-sizing: border-box;

	min-height: 2.25rem;

	padding: 0.2rem 0.25rem;

	border-radius: 8px;

	border: 1px solid #e8eef4;

	background: #fff;

}



.fs-nice-item:hover {

	border-color: #cbd5e1;

	background: #f8fafc;

}



.fs-nice-item input[type='checkbox'] {

	margin: 0;

	flex-shrink: 0;

	cursor: pointer;

}



.fs-nice-num {

	position: relative;

	font-weight: 700;

	font-size: 0.95rem;

	flex-shrink: 0;

	min-width: 1.35rem;

	color: #0f172a;

	cursor: default;

	padding: 0.15rem 0.25rem;

	border-radius: 6px;

	transition: color 0.12s ease, background-color 0.12s ease;

}



.fs-nice-num:hover {

	color: #1d4ed8;

	background: rgba(37, 99, 235, 0.1);

}



.fs-nice-num.fs-nice-num--active {

	color: #1d4ed8;

	background: rgba(37, 99, 235, 0.14);

	box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.28);

}



.fs-nice-item:focus-within .fs-nice-num {

	outline: 2px solid #2563eb;

	outline-offset: 2px;

}



.fs-nice-hint {

	margin-top: 1rem;

}



.fs-nice-99-extra {

	margin-top: 1rem;

}



.fs-nice-99-box {

	position: relative;

	padding: 0.75rem 0.85rem;

	border: 1px solid #e2e8f0;

	border-radius: 8px;

	background: #f8fafc;

}



.fs-nice-99-box--confirmed {

	outline: 2px solid #22c55e;

	outline-offset: 2px;

}



.fs-nice-99-label {

	margin: 0 0 0.5rem;

	font-size: 0.9rem;

	font-weight: 600;

	color: #0f172a;

}



.fs-nice-99-label label {

	cursor: pointer;

}



.fs-nice-99-controls {

	display: flex;

	align-items: flex-start;

	gap: 0.65rem;

}



.fs-nice-99-textarea {

	flex: 1;

	min-width: 0;

	min-height: 4.5rem;

	box-sizing: border-box;

	padding: 0.5rem 0.65rem;

	border: 1px solid #cbd5e1;

	border-radius: 6px;

	font-size: 0.9rem;

	line-height: 1.45;

	resize: vertical;

	background: #fff;

}



.fs-nice-99-textarea:disabled {

	opacity: 0.65;

	background: #f1f5f9;

}



.fs-nice-99-actions {

	display: flex;

	flex-direction: column;

	gap: 6px;

	flex-shrink: 0;

}



.fs-nice-99-btn {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	width: 36px;

	height: 36px;

	padding: 0;

	border: none;

	border-radius: 50%;

	cursor: pointer;

	background: rgba(255, 255, 255, 0.96);

	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.14);

	color: #334155;

	transition: background 0.15s ease, color 0.15s ease;

}



.fs-nice-99-btn:hover {

	background: #fff;

	color: #0f172a;

}



.fs-nice-99-btn:focus-visible {

	outline: 2px solid #2563eb;

	outline-offset: 2px;

}



.fs-nice-99-box--confirmed .fs-nice-99-confirm,

.fs-nice-99-btn--active {

	background: #22c55e;

	color: #fff;

	box-shadow: 0 1px 3px rgba(34, 197, 94, 0.35);

}



.fs-nice-99-box--confirmed .fs-nice-99-confirm:hover,

.fs-nice-99-btn--active:hover {

	color: #fff;

}



.fs-nice-99-clear:hover {

	color: #b91c1c;

}



.fs-nice-99-btn-icon {

	display: flex;

	line-height: 0;

}



