.aenkom-fototablitsa {
	--ft-bg: #edf3fa;
	--ft-panel: #ffffff;
	--ft-panel-soft: #f8fbff;
	--ft-line: #d7e1ec;
	--ft-line-dark: #b8c6d8;
	--ft-text: #17324d;
	--ft-muted: #6b7c93;
	--ft-primary: #2f6fed;
	--ft-primary-dark: #1f57c5;
	--ft-success: #1eaf6c;
	--ft-danger: #dd4b4b;
	--ft-shadow: 0 10px 28px rgba(23, 50, 77, .08);
	width: 100%;
	color: var(--ft-text);
	font-family: Arial, Helvetica, sans-serif;
}

.aenkom-fototablitsa *,
.aenkom-fototablitsa *::before,
.aenkom-fototablitsa *::after {
	box-sizing: border-box;
}

.aenkom-fototablitsa .ft-app {
	width: min(1780px, 100%);
	margin: 20px auto 40px;
}

.aenkom-fototablitsa .ft-card {
	border: 1px solid var(--ft-line);
	border-radius: 18px;
	background: var(--ft-panel);
	box-shadow: var(--ft-shadow);
}

.aenkom-fototablitsa .ft-header {
	display: flex;
	gap: 14px;
	align-items: stretch;
	flex-wrap: wrap;
	margin-bottom: 14px;
}

.aenkom-fototablitsa .ft-brand {
	flex: 1 1 340px;
	padding: 20px;
}

.aenkom-fototablitsa .ft-brand h1 {
	margin: 0 0 7px;
	color: var(--ft-text);
	font-size: 28px;
	line-height: 1.15;
}

.aenkom-fototablitsa .ft-brand p {
	margin: 0;
	color: var(--ft-muted);
	font-size: 14px;
	line-height: 1.5;
}

.aenkom-fototablitsa .ft-badges {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 15px;
}

.aenkom-fototablitsa .ft-badge {
	padding: 7px 10px;
	border: 1px solid #d8e5ff;
	border-radius: 999px;
	color: #255aa9;
	background: #edf4ff;
	font-size: 12px;
	font-weight: 700;
}

.aenkom-fototablitsa .ft-object-form {
	flex: 1 1 720px;
	padding: 18px;
}

.aenkom-fototablitsa .ft-object-form h2 {
	margin: 0 0 12px;
	font-size: 16px;
}

.aenkom-fototablitsa .ft-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.aenkom-fototablitsa .ft-field-full {
	grid-column: 1 / -1;
}

.aenkom-fototablitsa .ft-field label,
.aenkom-fototablitsa .ft-setting label,
.aenkom-fototablitsa .ft-modal-field label {
	display: block;
	margin-bottom: 6px;
	color: var(--ft-muted);
	font-size: 12px;
	font-weight: 700;
}

.aenkom-fototablitsa .ft-input,
.aenkom-fototablitsa .ft-select {
	width: 100%;
	height: 38px;
	padding: 8px 10px;
	border: 1px solid var(--ft-line-dark);
	border-radius: 10px;
	outline: none;
	color: var(--ft-text);
	background: #fff;
}

.aenkom-fototablitsa .ft-input:focus,
.aenkom-fototablitsa .ft-select:focus {
	border-color: var(--ft-primary);
	box-shadow: 0 0 0 3px rgba(47, 111, 237, .12);
}

.aenkom-fototablitsa .ft-toolbar,
.aenkom-fototablitsa .ft-settings,
.aenkom-fototablitsa .ft-upload-status {
	margin-bottom: 14px;
	padding: 14px;
}

.aenkom-fototablitsa .ft-toolbar-row {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}

.aenkom-fototablitsa .ft-toolbar-group,
.aenkom-fototablitsa .ft-upload-list {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.aenkom-fototablitsa .ft-button {
	min-height: 38px;
	padding: 9px 12px;
	border: 1px solid var(--ft-line-dark);
	border-radius: 11px;
	color: var(--ft-text);
	background: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.aenkom-fototablitsa .ft-button:hover:not(:disabled) {
	border-color: #90a8c4;
	box-shadow: 0 5px 15px rgba(23, 50, 77, .11);
	transform: translateY(-1px);
}

.aenkom-fototablitsa .ft-button:disabled {
	cursor: not-allowed;
	opacity: .48;
	box-shadow: none;
	transform: none;
}

.aenkom-fototablitsa .ft-button--primary {
	border-color: var(--ft-primary);
	color: #fff;
	background: var(--ft-primary);
}

.aenkom-fototablitsa .ft-button--success {
	border-color: var(--ft-success);
	color: #fff;
	background: var(--ft-success);
}

.aenkom-fototablitsa .ft-button--danger {
	border-color: var(--ft-danger);
	color: #fff;
	background: var(--ft-danger);
}

.aenkom-fototablitsa .ft-section-title {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
	flex-wrap: wrap;
}

.aenkom-fototablitsa .ft-section-title h2 {
	margin: 0;
	font-size: 17px;
}

.aenkom-fototablitsa .ft-muted {
	color: var(--ft-muted);
	font-size: 12px;
	line-height: 1.45;
}

.aenkom-fototablitsa .ft-settings-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}

.aenkom-fototablitsa .ft-setting {
	min-height: 88px;
	padding: 12px;
	border: 1px solid var(--ft-line);
	border-radius: 14px;
	background: var(--ft-panel-soft);
}

.aenkom-fototablitsa .ft-range-row {
	display: flex;
	gap: 8px;
	align-items: center;
}

.aenkom-fototablitsa .ft-range {
	width: 100%;
	accent-color: var(--ft-primary);
}

.aenkom-fototablitsa .ft-range-value {
	min-width: 46px;
	color: var(--ft-primary);
	font-size: 13px;
	font-weight: 700;
	text-align: right;
}

.aenkom-fototablitsa .ft-switch-row {
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
}

.aenkom-fototablitsa .ft-switch {
	position: relative;
	display: inline-block;
	width: 45px;
	height: 25px;
	flex: 0 0 auto;
}

.aenkom-fototablitsa .ft-switch input {
	width: 0;
	height: 0;
	opacity: 0;
}

.aenkom-fototablitsa .ft-switch-slider {
	position: absolute;
	inset: 0;
	border-radius: 999px;
	background: #cbd5e1;
	cursor: pointer;
	transition: .2s ease;
}

.aenkom-fototablitsa .ft-switch-slider::before {
	position: absolute;
	bottom: 3px;
	left: 3px;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: #fff;
	content: "";
	transition: .2s ease;
}

.aenkom-fototablitsa .ft-switch input:checked + .ft-switch-slider {
	background: var(--ft-primary);
}

.aenkom-fototablitsa .ft-switch input:checked + .ft-switch-slider::before {
	transform: translateX(20px);
}

.aenkom-fototablitsa .ft-upload-list {
	align-items: stretch;
}

.aenkom-fototablitsa .ft-upload-empty {
	width: 100%;
	padding: 18px;
	border: 1px dashed #becde0;
	border-radius: 13px;
	color: var(--ft-muted);
	background: var(--ft-panel-soft);
	font-size: 13px;
	text-align: center;
}

.aenkom-fototablitsa .ft-upload-item {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) auto auto;
	gap: 10px;
	align-items: center;
	flex: 1 1 280px;
	min-width: 260px;
	padding: 9px;
	border: 1px solid var(--ft-line);
	border-radius: 14px;
	background: var(--ft-panel-soft);
}

.aenkom-fototablitsa .ft-upload-thumb {
	width: 48px;
	height: 48px;
	overflow: hidden;
	border-radius: 10px;
	background: #e8f0fb;
}

.aenkom-fototablitsa .ft-upload-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.aenkom-fototablitsa .ft-upload-data {
	min-width: 0;
}

.aenkom-fototablitsa .ft-upload-name {
	overflow: hidden;
	margin-bottom: 5px;
	font-size: 12px;
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.aenkom-fototablitsa .ft-upload-meta {
	overflow: hidden;
	margin-bottom: 6px;
	color: var(--ft-muted);
	font-size: 11px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.aenkom-fototablitsa .ft-upload-progress {
	width: 100%;
	height: 7px;
	overflow: hidden;
	border-radius: 999px;
	background: #e2e8f0;
}

.aenkom-fototablitsa .ft-upload-progress span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--ft-primary), #77a6ff);
}

.aenkom-fototablitsa .ft-upload-percent {
	color: var(--ft-primary);
	font-size: 12px;
	font-weight: 800;
}

.aenkom-fototablitsa .ft-upload-remove {
	width: 30px;
	height: 30px;
	border: 0;
	border-radius: 8px;
	color: var(--ft-danger);
	background: transparent;
	font-size: 21px;
	line-height: 1;
	cursor: pointer;
}

.aenkom-fototablitsa .ft-sheets {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.aenkom-fototablitsa .ft-empty-state {
	padding: 52px 20px;
	border: 2px dashed #c7d3e3;
	border-radius: 18px;
	color: var(--ft-muted);
	background: #fff;
	text-align: center;
}

.aenkom-fototablitsa .ft-empty-state h2 {
	margin: 0 0 8px;
	color: var(--ft-text);
	font-size: 20px;
}

.aenkom-fototablitsa .ft-empty-state p {
	margin: 0;
	font-size: 14px;
}

/* Экранный лист */

.aenkom-fototablitsa .ft-sheet {
	display: flex;
	flex-direction: column;
	width: min(100%, 1120px);
	min-height: 1060px;
	margin: 0 auto;
	padding: 22px;
	border: 1px solid var(--ft-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ft-shadow);
}

.aenkom-fototablitsa .ft-sheet-header {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--ft-line);
	flex-wrap: wrap;
}

.aenkom-fototablitsa .ft-sheet-title {
	margin: 0;
	font-size: 18px;
}

.aenkom-fototablitsa .ft-sheet-number {
	padding: 7px 10px;
	border-radius: 999px;
	color: #285da8;
	background: #edf4ff;
	font-size: 12px;
	font-weight: 700;
}

.aenkom-fototablitsa .ft-sheet-object-info {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 5px 22px;
	margin: 0 0 14px;
	padding: 10px 0 12px;
	border-bottom: 1px solid var(--ft-line);
	font-size: 12px;
	line-height: 1.45;
}

.aenkom-fototablitsa .ft-sheet-object-item {
	min-width: 0;
	overflow-wrap: anywhere;
}

.aenkom-fototablitsa .ft-sheet-object-item.full {
	grid-column: 1 / -1;
}

.aenkom-fototablitsa .ft-sheet-object-label {
	color: var(--ft-muted);
	font-weight: 700;
}

.aenkom-fototablitsa .ft-photo-grid {
	display: grid;
	gap: 12px;
	align-content: start;
}

.aenkom-fototablitsa .ft-photo {
	overflow: hidden;
	border: 1px solid #c7d3e3;
	border-radius: 14px;
	background: #fff;
	cursor: pointer;
}

.aenkom-fototablitsa .ft-photo.selected {
	border-color: var(--ft-primary);
	box-shadow: 0 0 0 3px rgba(47, 111, 237, .16);
}

.aenkom-fototablitsa .ft-photo-image-wrap {
	display: flex;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	align-items: center;
	justify-content: center;
	background: #f3f6f9;
}

.aenkom-fototablitsa .ft-photo-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	transform-origin: center;
}

.aenkom-fototablitsa .ft-photo-image.cover {
	object-fit: cover;
}

.aenkom-fototablitsa .ft-photo-caption {
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
	min-height: 36px;
	padding: 8px 10px;
	border-top: 1px solid var(--ft-line);
	color: var(--ft-text);
	background: #fff;
	font-size: 12px;
	font-weight: 700;
}

.aenkom-fototablitsa .ft-photo-status {
	color: var(--ft-success);
}

.aenkom-fototablitsa .ft-sheet-signature {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(130px, 1fr);
	width: min(620px, 65%);
	min-height: 62px;
	margin: auto auto 0;
	background: transparent;
}

.aenkom-fototablitsa .ft-signer-name {
	display: flex;
	align-items: center;
	padding: 8px 14px;
	color: var(--ft-text);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
	word-break: break-word;
}

.aenkom-fototablitsa .ft-signer-image {
	display: flex;
	overflow: hidden;
	align-items: center;
	justify-content: center;
	padding: 4px 8px;
}

.aenkom-fototablitsa .ft-signer-image img {
	display: block;
	width: 100%;
	height: 52px;
	object-fit: contain;
}

/* Модальные окна */

.aenkom-fototablitsa .ft-modal[hidden] {
	display: none;
}

.aenkom-fototablitsa .ft-modal {
	position: fixed;
	z-index: 999999;
	inset: 0;
	display: flex;
	padding: 18px;
	align-items: center;
	justify-content: center;
	background: rgba(11, 29, 48, .52);
}

.aenkom-fototablitsa .ft-modal-dialog {
	width: min(690px, 100%);
	max-height: 90vh;
	overflow-y: auto;
	padding: 18px;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 25px 70px rgba(0, 0, 0, .27);
}

.aenkom-fototablitsa .ft-modal-header {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
	flex-wrap: wrap;
}

.aenkom-fototablitsa .ft-modal-header h2 {
	margin: 0;
	font-size: 20px;
}

.aenkom-fototablitsa .ft-modal-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.aenkom-fototablitsa .ft-modal-field {
	padding: 12px;
	border: 1px solid var(--ft-line);
	border-radius: 14px;
	background: var(--ft-panel-soft);
}

.aenkom-fototablitsa .ft-signature-preview {
	display: flex;
	width: 100%;
	min-height: 120px;
	overflow: hidden;
	align-items: center;
	justify-content: center;
	border: 1px dashed #b7c7da;
	border-radius: 10px;
	color: #8496ab;
	background: #fff;
	font-size: 12px;
	text-align: center;
}

.aenkom-fototablitsa .ft-signature-preview img {
	display: block;
	width: 100%;
	height: 115px;
	object-fit: contain;
}

.aenkom-fototablitsa .ft-modal-actions,
.aenkom-fototablitsa .ft-signature-actions {
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
}

.aenkom-fototablitsa .ft-signature-actions {
	margin-top: 10px;
}

.aenkom-fototablitsa .ft-modal-actions {
	margin-top: 16px;
}

.aenkom-fototablitsa .ft-email-form {
	display: grid;
	gap: 11px;
}

.aenkom-fototablitsa .ft-email-message {
	min-height: 20px;
	color: var(--ft-muted);
	font-size: 13px;
}

.aenkom-fototablitsa .ft-email-message.error {
	color: var(--ft-danger);
}

.aenkom-fototablitsa .ft-email-message.success {
	color: var(--ft-success);
}

.aenkom-fototablitsa .ft-toast {
	position: fixed;
	z-index: 1000000;
	right: 18px;
	bottom: 18px;
	max-width: 390px;
	padding: 13px 15px;
	border-radius: 12px;
	color: #fff;
	background: #17324d;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .22);
	font-size: 13px;
	line-height: 1.4;
	opacity: 0;
	pointer-events: none;
	transform: translateY(12px);
	transition: .2s ease;
}

.aenkom-fototablitsa .ft-toast.show {
	opacity: 1;
	transform: translateY(0);
}

.aenkom-fototablitsa .ft-toast.success {
	background: var(--ft-success);
}

.aenkom-fototablitsa .ft-toast.error {
	background: var(--ft-danger);
}

@media (max-width: 1250px) {
	.aenkom-fototablitsa .ft-settings-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.aenkom-fototablitsa .ft-app {
		width: min(100%, 1780px);
		margin-top: 9px;
	}

	.aenkom-fototablitsa .ft-brand,
	.aenkom-fototablitsa .ft-object-form,
	.aenkom-fototablitsa .ft-toolbar,
	.aenkom-fototablitsa .ft-settings,
	.aenkom-fototablitsa .ft-upload-status,
	.aenkom-fototablitsa .ft-sheet {
		padding: 13px;
	}

	.aenkom-fototablitsa .ft-fields,
	.aenkom-fototablitsa .ft-settings-grid,
	.aenkom-fototablitsa .ft-modal-grid,
	.aenkom-fototablitsa .ft-sheet-object-info {
		grid-template-columns: 1fr;
	}

	.aenkom-fototablitsa .ft-field-full,
	.aenkom-fototablitsa .ft-sheet-object-item.full {
		grid-column: auto;
	}

	.aenkom-fototablitsa .ft-upload-item {
		min-width: 100%;
	}

	.aenkom-fototablitsa .ft-sheet-signature {
		width: min(100%, 620px);
	}
}

/*
 * Печать:
 * - Каждый .ft-sheet становится отдельной A4-страницей.
 * - По умолчанию девять фото: 3 колонки × 3 ряда.
 * - Фото вписывается без обрезки.
 * - При 16 фото используется 4×4 с уменьшенными ячейками.
 */

@media print {
	@page {
		size: A4 portrait;
		margin: 7mm;
	}

	html,
	body {
		width: 210mm;
		margin: 0;
		padding: 0;
		background: #fff;
	}

	.aenkom-fototablitsa .ft-header,
	.aenkom-fototablitsa .ft-toolbar,
	.aenkom-fototablitsa .ft-settings,
	.aenkom-fototablitsa .ft-upload-status,
	.aenkom-fototablitsa .ft-modal,
	.aenkom-fototablitsa .ft-toast {
		display: none !important;
	}

	.aenkom-fototablitsa .ft-app,
	.aenkom-fototablitsa .ft-sheets {
		display: block !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.aenkom-fototablitsa .ft-sheet {
		display: flex !important;
		flex-direction: column !important;
		width: 196mm !important;
		height: 283mm !important;
		min-height: 283mm !important;
		max-height: 283mm !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		break-after: page !important;
		page-break-after: always !important;
		break-inside: avoid-page !important;
		page-break-inside: avoid !important;
	}

	.aenkom-fototablitsa .ft-sheet:last-child {
		break-after: auto !important;
		page-break-after: auto !important;
	}

	.aenkom-fototablitsa .ft-sheet-header {
		min-height: 10mm !important;
		padding: 0 0 3mm !important;
		border-bottom: .25mm solid #777 !important;
	}

	.aenkom-fototablitsa .ft-sheet-title {
		font-size: 13pt !important;
	}

	.aenkom-fototablitsa .ft-sheet-number {
		padding: 1.5mm 2.5mm !important;
		font-size: 8pt !important;
	}

	.aenkom-fototablitsa .ft-sheet-object-info {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1.5mm 5mm !important;
		margin: 0 0 3mm !important;
		padding: 2.5mm 0 3mm !important;
		border-bottom: .25mm solid #777 !important;
		font-size: 8pt !important;
		line-height: 1.25 !important;
	}

	.aenkom-fototablitsa .ft-photo-grid {
		display: grid !important;
		flex: 0 0 auto !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 2mm !important;
		margin: 0 !important;
		padding: 0 !important;
		align-content: start !important;
	}

	.aenkom-fototablitsa .ft-photo {
		overflow: hidden !important;
		border: .25mm solid #777 !important;
		border-radius: 0 !important;
		break-inside: avoid !important;
		page-break-inside: avoid !important;
	}

	.aenkom-fototablitsa .ft-photo-image-wrap {
		height: 51mm !important;
		aspect-ratio: auto !important;
		overflow: hidden !important;
		background: #fff !important;
	}

	.aenkom-fototablitsa .ft-photo-image {
		width: 100% !important;
		height: 100% !important;
		object-fit: contain !important;
	}

	.aenkom-fototablitsa .ft-photo-image.cover {
		object-fit: cover !important;
	}

	.aenkom-fototablitsa .ft-photo-caption {
		min-height: 6mm !important;
		padding: 1.3mm 2mm !important;
		border-top: .25mm solid #777 !important;
		font-size: 7pt !important;
		line-height: 1 !important;
	}

	.aenkom-fototablitsa .ft-photo-status {
		display: none !important;
	}

	.aenkom-fototablitsa .ft-sheet-signature {
		display: grid !important;
		grid-template-columns: minmax(0, 2fr) minmax(30mm, 1fr) !important;
		width: 125mm !important;
		min-height: 13mm !important;
		margin: auto auto 0 !important;
	}

	.aenkom-fototablitsa .ft-signer-name {
		padding: 2mm 4mm !important;
		font-size: 9pt !important;
	}

	.aenkom-fototablitsa .ft-signer-image {
		padding: 1mm 2mm !important;
	}

	.aenkom-fototablitsa .ft-signer-image img {
		height: 11mm !important;
	}

	.aenkom-fototablitsa .ft-photo-grid[data-count="16"] {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 1.5mm !important;
	}

	.aenkom-fototablitsa .ft-photo-grid[data-count="16"] .ft-photo-image-wrap {
		height: 37mm !important;
	}

	.aenkom-fototablitsa .ft-photo-grid[data-count="16"] .ft-photo-caption {
		min-height: 5mm !important;
		padding: 1mm 1.5mm !important;
		font-size: 6.5pt !important;
	}
}