@font-face {
	font-family: 'RobotoBold';
	src: url('../libs/fonts/RobotoBold/RobotoBold.eot?') format('eot'),
	     url('../libs/fonts/RobotoBold/RobotoBold.otf')  format('opentype'),
	     url('../libs/fonts/RobotoBold/RobotoBold.woff') format('woff'),
	     url('../libs/fonts/RobotoBold/RobotoBold.ttf')  format('truetype');
}
@font-face {
	font-family: 'RobotoRegular';
	src: url('../libs/fonts/RobotoRegular/RobotoRegular.eot?') format('eot'),
	     url('../libs/fonts/RobotoRegular/RobotoRegular.otf')  format('opentype'),
	     url('../libs/fonts/RobotoRegular/RobotoRegular.woff') format('woff'),
	     url('../libs/fonts/RobotoRegular/RobotoRegular.ttf')  format('truetype');
}

body.colbg {
	margin: 0;
	background: linear-gradient(135deg, #0e8b9c 0%, #1fb2a3 50%, #cdeee0 100%);
	min-height: 100vh;
}
body.nbg {
	background:#F3F3F3;
}
body.nbg footer span {
	color:#636363;
}
:active, :hover, :focus {
    outline: 0;
    outline-offset: 0;
}
input:focus {
	outline: 2px solid #636363;
}

/* Error */
.main-error {
	text-align: left;
	color: #d9534f;
	font-size: 13px;
	margin-top: -6px;
}
.main-error:empty {
	display: none;
}
.success {
	font-weight:500;
	text-align:center;
}
.preloader {
	height:64px;
	width:64px;
	margin:0 auto;
	background: url(../img/preloader.gif) 0 0 no-repeat;
}

/* Страница входа */
.login-page {
	position: relative;
	min-height: 100vh;
	width: 100%;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px 20px;
	box-sizing: border-box;
}
.login-page::before,
.login-page::after {
	content: "";
	position: absolute;
	border-radius: 45% 55% 60% 40% / 50% 45% 55% 50%;
	background: rgba(255, 255, 255, 0.16);
	pointer-events: none;
}
.login-page::before {
	width: 620px;
	height: 620px;
	top: -180px;
	left: -200px;
}
.login-page::after {
	width: 520px;
	height: 520px;
	bottom: -220px;
	right: -180px;
	background: rgba(255, 255, 255, 0.12);
}

.lang-switch {
	position: absolute;
	top: 30px;
	right: 30px;
	background: #fff;
	color: #14a89c;
	font-size: 13px;
	font-weight: 700;
	padding: 8px 16px;
	border-radius: 20px;
	display: flex;
	align-items: center;
	gap: 6px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.08);
	z-index: 2;
	user-select: none;
}
.lang-switch .lang-arrow {
	font-size: 9px;
}

.login-rays {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1500px;
	height: 1500px;
	transform: translate(-50%, -50%);
	background: repeating-conic-gradient(rgba(255,255,255,0.4) 0deg 0.6deg, transparent 0.6deg 16deg);
	-webkit-mask-image: radial-gradient(circle, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.35) 32%, transparent 62%);
	mask-image: radial-gradient(circle, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.35) 32%, transparent 62%);
	pointer-events: none;
	z-index: 0;
}

.login-card {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 480px;
	background: #fff;
	border-radius: 20px;
	padding: 40px 45px 35px;
	box-shadow: 0 20px 45px rgba(0, 40, 50, 0.25);
	box-sizing: border-box;
	overflow: hidden;
}
.login-card::before,
.login-card::after {
	content: "";
	position: absolute;
	width: 340px;
	height: 340px;
	border-radius: 42% 58% 60% 40% / 48% 44% 56% 52%;
	background: radial-gradient(circle at 30% 30%, rgba(20,168,156,0.14), rgba(20,168,156,0) 70%);
	pointer-events: none;
	z-index: 0;
}
.login-card::before {
	right: -120px;
	bottom: -190px;
}
.login-card::after {
	left: -140px;
	bottom: -210px;
	width: 300px;
	height: 300px;
	background: radial-gradient(circle at 30% 30%, rgba(20,168,156,0.08), rgba(20,168,156,0) 70%);
}
.login-card > * {
	position: relative;
	z-index: 1;
}

.login-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	margin-bottom: 35px;
}
.login-logo span {
	font-size: 26px;
	font-weight: 800;
	color: #14a89c;
	letter-spacing: 0.5px;
	font-family: "RobotoBold", sans-serif;
}
.login-logo svg {
	height: 34px;
	width: auto;
	margin: 0 2px;
}

.form-field {
	margin-bottom: 20px;
	text-align: left;
}
.form-field label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	color: #14a89c;
	margin-bottom: 8px;
	font-family: "RobotoBold", sans-serif;
}
.form-field input {
	width: 100%;
	border: 1px solid #d8dde0;
	border-radius: 24px;
	padding: 12px 18px;
	font-size: 14px;
	color: #333;
	box-sizing: border-box;
}
.form-field input::placeholder {
	color: #a7adb0;
}
.form-field input.error-message {
	border-color: #d9534f;
}
.password-wrap {
	position: relative;
}
.password-wrap input {
	padding-right: 42px;
}
.toggle-password {
	position: absolute;
	top: 50%;
	right: 14px;
	transform: translateY(-50%);
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: #a7adb0;
	line-height: 0;
}
.toggle-password svg {
	width: 18px;
	height: 18px;
	display: block;
}

.btn-submit {
	display: block;
	width: 100%;
	border: 0;
	border-radius: 24px;
	background-color: #14a89c;
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	padding: 13px 0;
	cursor: pointer;
	margin-top: 10px;
	transition: background-color 300ms;
}
.btn-submit:hover {
	background-color: #0f8f84;
}
.btn-submit[disabled] {
	opacity: 0.7;
	cursor: default;
}

.login-divider {
	display: flex;
	align-items: center;
	text-align: center;
	color: #a7adb0;
	font-size: 12px;
	margin: 30px 0 18px;
}
.login-divider::before,
.login-divider::after {
	content: "";
	flex: 1;
	border-top: 1px solid #e5e8ea;
}
.login-divider span {
	padding: 0 12px;
}

.login-contacts {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 13px;
	color: #8b9296;
}

/* Footer */
footer {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 40px;
	margin:0 auto;
	text-align:center;
}
footer span {
	width:100%;
	text-align:center;
	color:#FFF;
}

.head_module {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    flex-direction: row;
	height: 45px;
    background: #14a89c;
    color: #fff;
    -webkit-box-flex: 0;
    -webkit-flex: none;
    -ms-flex: none;
    flex: none;
    padding: 10px 20px;
	align-items: center;
}
.head_module .info {
    font-size: 18px;
    font-family: "RobotoBold";
    text-transform: uppercase;
}

/* Form */
.contayner_module {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	min-height: 100vh;
	height: auto;
	width: 100%;
	padding: 20px 0;
}
#form {
	min-width: 800px;
}
.block-group {
	margin-top:10px;
	margin-bottom:10px;
}
.form-label {
    font-size: 12px;
    font-family: "RobotoBold";
	padding-left:15px;
	color:#333;
	text-transform: uppecase;
}
.btn-danger, .btn-danger:active, .btn-danger:focus  {
	background-color: #14a89c;
	border-color: #14a89c;
}
.btn-success, .btn-success:hover, .btn-success:active {
	background-color: #333;
	border-color: #333;
}
.col-block {
	width:50%;
}
#form .row,
#form-db .row {
	--bs-gutter-x: 0;
}
.btn-danger:focus, .btn-success:focus, .form-select:focus {
	box-shadow: none;
}
.form-control:focus {
	box-shadow: none;
	border-color: #333;
}
.form-control-lg, .form-select {
	font-size:16px;
}
.form-select {
	COLOR:#333;
}
.form-select:hover {
	cursor:pointer;
}
.form-control {
	color:#636363
}
.butProject {
	cursor: pointer;
	color: #fff;
	font-size: 16px;
	text-transform: uppercase;
	width: 200px;
	border: 0;
	padding: 10px 0;
	padding-top: 13px;
	margin-top: 10px;
	margin-left: -5px;
	border-radius: 5px;
	background-color: #14a89c;
	-webkit-transition: background-color 300ms;
	-moz-transition: background-color 300ms;
	transition: background-color 300ms;
}
.butProject:hover {
	background-color: #636363;
}
.preloader_a {
	display:block;
	float:right;
	height:64px;
	width:64px;
	margin:0 auto;
	background: url(../img/preloader.gif) 0 0 no-repeat;
}
.cl-error:not(:empty) {
	position: fixed;
	top: 60px;
	left: 24px;
	z-index: 9998;
	background: #e07010;
	color: #fff;
	padding: 13px 18px 14px;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.45;
	min-width: 270px;
	max-width: 430px;
	box-shadow: 0 4px 18px rgba(0,0,0,0.25);
	animation: plem-toast-in 0.28s ease;
}
.cl-success {
	position: fixed;
	top: 60px;
	left: 24px;
	z-index: 9998;
	background: #1a8f3c;
	color: #fff;
	padding: 13px 18px 14px;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.45;
	min-width: 270px;
	max-width: 430px;
	box-shadow: 0 4px 18px rgba(0,0,0,0.25);
	animation: plem-toast-in 0.28s ease;
}
.cl-error ul {
	list-style: none;
	margin: 0;
	padding-left: 0;
}
.cl-error ul li {
	padding-left: 0;
	margin-top: 2px;
}
.cl-error ul li b {
	color: #fff;
}
.contayner_table {
	padding:25px;
}
.table tr th,
.table tr td {
	vertical-align: middle;
}
.table tr td a {
	position: inherit;
	color: #333;
}
.butPrintPage {
	cursor: pointer;
	color: #fff;
	font-size: 16px;
	text-transform: uppercase;
	width: 200px;
	border: 0;
	padding: 10px 0;
	padding-top: 13px;
	margin-top: 10px;
	margin-left: -5px;
	border-radius: 5px;
	background-color: #14a89c;
	-webkit-transition: background-color 300ms;
	-moz-transition: background-color 300ms;
	transition: background-color 300ms;
	align-items: flex-end;
	position: inherit;
	margin-left:25px;
}
span[class^="row_"],
span[class^="rowdel_"] {
	display:block;
	width: 100.8px;
	height: 22.8px;
	-webkit-mask: linear-gradient(90deg,#14a89c 70%,#0000 0) left/20% 100%;
	background: linear-gradient(#14a89c 0 0) left/0% 100% no-repeat #dbdcef;
	animation: progress-422c3u 2s infinite steps(6);
	float:right;
}
@keyframes progress-422c3u {
	100% {
	   background-size: 120% 100%;
	}
}
.col-print {
	width:200px;
}
.er {
	width:100%;
	padding: 25px;
	background-color: antiquewhite;
}
.sc {
	width:100%;
	padding: 25px;
	text-align: left;
	background-color: rgb(205, 231, 209);
}
input[name = "plemNumber"] {
	width:170px;
}
.goPrint:hover, .delPrint:hover {
	color:#14a89c;
}
.yesPrint {
	color:#14a89c !important;
}
.ctrl {
	text-align: center;
}
.addPrintAnimals {
	width:250px !important;
	margin-left:0 !important;
}
.addPrintAnimals:hover, .butPrintPage:hover {
	background-color: #636363;
}
.ac-wrap {
	position: relative;
}
.ac-suggestions {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 20;
	max-height: 220px;
	overflow-y: auto;
	overflow-x: hidden;
	box-sizing: border-box;
	background: #fff;
	border: 1px solid #ccc;
	border-top: none;
	box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.ac-item {
	padding: 8px 12px;
	font-size: 14px;
	color: #333;
	cursor: pointer;
	white-space: normal;
	word-break: break-word;
}
.ac-item:hover {
	background-color: #14a89c;
	color: #fff;
}

/* Табы формы */
.plem-tabs-wrap {
	width: 100%;
}
.plem-tabs {
	display: flex;
	gap: 0;
	position: relative;
	z-index: 1;
	margin-left:25px;
}
.plem-tab-btn {
	padding: 10px 28px;
	padding-top: 13px;
	font-size: 16px;
	/*font-family: "RobotoBold", sans-serif;*/
	text-transform: uppercase;
	background: #e0e0e0;
	border: 2px solid #333;
	border-bottom: none;
	cursor: pointer;
	color: #555;
	margin-right: 4px;
	border-radius: 5px 5px 0 0;
	margin-bottom: -2px;
	transition: background-color 200ms, color 200ms;
}
.plem-tab-btn.active {
	background: #14a89c;
	color: #fff;
	border-color: #333;
}
.plem-tab-btn:hover:not(.active) {
	background: #c8c8c8;
}
.plem-tabs-body {
	border: 2px solid #333;
	border-radius: 0 15px 15px 15px;
	padding: 20px;
	position: relative;
	z-index: 0;
}
.plem-tab-panel {
	display: none;
}
.plem-tab-panel.active {
	display: block;
}
.plem-tab-panel form {
	border: none;
	padding: 0;
	min-width: unset;
	border-radius: 0;
}
/* Заголовок секции ручной формы */
.manual-section {
	margin-top: 18px;
	margin-bottom: 6px;
	padding: 10px 12px;
	padding-top: 13px;
	background: #14a89c;
	color: #fff;
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border-radius: 4px;
	display: flex;
	align-items: center;
}
.manual-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 8px 16px;
}
.manual-grid .block-group {
	margin: 0;
}
.manual-grid-3 {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 8px 16px;
}
.manual-grid-3 .block-group {
	margin: 0;
}
.manual-grid-4 {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	gap: 8px 16px;
}
.manual-grid-4 .block-group {
	margin: 0;
}
/* Подсказка в ручной форме */
.form-hint-manual {
	font-size: 12px;
	color: #888;
	margin: 2px 0 10px;
	padding: 0;
}
/* База — заглушка */
.plem-db-placeholder {
	text-align: center;
	padding: 40px 20px;
	color: #888;
	font-size: 15px;
}

/* Toast-уведомления (валидация формы) */
#plem-toast-container {
	position: fixed;
	top: 60px;
	left: 24px;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	gap: 8px;
	pointer-events: none;
}
.plem-toast {
	background: #e07010;
	color: #fff;
	padding: 13px 18px 14px;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.45;
	min-width: 270px;
	max-width: 430px;
	box-shadow: 0 4px 18px rgba(0,0,0,0.25);
	pointer-events: all;
	animation: plem-toast-in 0.28s ease;
}
.plem-toast b {
	display: block;
	margin-bottom: 5px;
	font-size: 13px;
	opacity: 0.88;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.plem-toast ul {
	margin: 0;
	padding-left: 16px;
}
.plem-toast ul li {
	margin-top: 2px;
}
@keyframes plem-toast-in {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Подсветка незаполненных обязательных полей */
.plem-field-error,
.plem-field-error.form-control,
.plem-field-error.form-control-lg {
	border: 2px solid #e07010 !important;
	border-radius: 6px;
}

/* Статус загрузки .fdb на табе "База" */
.db-upload-status {
	display: block;
	margin-top: 4px;
	font-size: 0.85em;
	color: #666;
}
.db-upload-status.ok  { color: #1a7a1a; }
.db-upload-status.err { color: #c0392b; }
