/*
 * Certificate verification panel.
 *
 * Revision 3 scanner/certificate workspace styling. These selectors are
 * scoped to the certificate page so the other reference pages remain
 * unchanged.
 */

body .db-certificate-page .db-pmr-certificate-panel {
	min-width: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

/* Match the coordinated two-panel composition in the Revision 3 reference. */
body .db-certificate-page .db-cert-workspace {
	grid-template-columns: minmax(0, .98fr) minmax(0, 1fr);
	align-items: start;
	gap: clamp(16px, 1.7vw, 24px);
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) {
	display: flex;
	position: relative;
	align-self: start;
	box-sizing: border-box;
	flex-direction: column;
	min-height: 0;
	padding: clamp(30px, 2.8vw, 40px);
	border: 1px solid #c9a654;
	border-radius: 10px;
	background: #fffdf9;
	box-shadow: 0 8px 20px rgba(160, 119, 30, .08);
	color: #273a59;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel)::before {
	position: absolute;
	inset: 9px;
	border: 1px solid #ead9b5;
	border-radius: 8px;
	content: "";
	pointer-events: none;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) > * {
	position: relative;
	z-index: 1;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-panel-head {
	margin-bottom: 15px;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-panel-head h2 {
	margin-top: 8px;
	color: #0b1d43;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(28px, 3vw, 36px);
	font-weight: 700;
	letter-spacing: -.035em;
	line-height: 1.12;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) > p:not(.db-cert-camera-status) {
	margin: 0;
	color: #657792;
	font-size: 12px;
	line-height: 1.55;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-camera {
	display: grid;
	position: relative;
	flex: 1 1 auto;
	min-height: clamp(250px, 24.6vw, 320px);
	margin-top: 20px;
	overflow: hidden;
	border: 1px dashed #d9d4c7;
	border-radius: 8px;
	background: linear-gradient(145deg, #fafaf8, #f2f1ee);
}

body .db-certificate-page .db-cert-camera-video {
	display: block;
	grid-area: 1 / 1 / -1 / -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #111827;
}

body .db-certificate-page .db-cert-camera.is-camera-active .db-cert-camera-placeholder {
	display: none;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-camera-placeholder {
	display: grid;
	place-items: center;
	gap: 6px;
	color: #7d5c18;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
}

body .db-certificate-page .db-cert-camera-icon {
	position: relative;
	display: block;
	width: 51px;
	height: 36px;
	border: 3px solid #96701d;
	border-radius: 9px;
}

body .db-certificate-page .db-cert-camera-icon::before {
	position: absolute;
	top: 8px;
	left: 14px;
	width: 13px;
	height: 13px;
	border: 3px solid #96701d;
	border-radius: 50%;
	content: "";
}

body .db-certificate-page .db-cert-camera-icon::after {
	position: absolute;
	top: -8px;
	left: 13px;
	width: 18px;
	height: 8px;
	border: 3px solid #96701d;
	border-bottom: 0;
	border-radius: 5px 5px 0 0;
	content: "";
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-camera-placeholder small {
	color: #5e6e8a;
	font: 400 11px/1.45 var(--db-ref-sans, Arial, sans-serif);
	letter-spacing: 0;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	flex: 0 0 auto;
	margin-top: 16px;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-camera-status {
	flex: 0 0 auto;
	margin: 12px 2px 0;
	color: #657792;
	font-size: 11.5px;
	line-height: 1.55;
}

body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-width: 0;
	min-height: 39px;
	padding: 0 12px;
	border-radius: 5px;
	font-size: 10px;
	letter-spacing: .12em;
}

body .db-certificate-page .db-cert-button-icon {
	display: inline-block;
	position: relative;
	flex: 0 0 auto;
}

body .db-certificate-page .db-cert-button-icon-camera {
	width: 14px;
	height: 10px;
	border: 2px solid currentColor;
	border-radius: 3px;
}

body .db-certificate-page .db-cert-button-icon-camera::before {
	position: absolute;
	top: 1px;
	left: 3px;
	width: 4px;
	height: 4px;
	border: 1px solid currentColor;
	border-radius: 50%;
	content: "";
}

body .db-certificate-page .db-cert-button-icon-camera::after {
	position: absolute;
	top: -4px;
	left: 3px;
	width: 6px;
	height: 4px;
	border: 2px solid currentColor;
	border-bottom: 0;
	border-radius: 2px 2px 0 0;
	content: "";
}

body .db-certificate-page .db-cert-button-icon-stop {
	width: 9px;
	height: 9px;
	border-radius: 1px;
	background: currentColor;
}

body .db-certificate-page #certificateStartCamera {
	border-color: #b1841c;
	background: linear-gradient(180deg, #c99f2d 0%, #b58611 100%);
	color: #fff;
}

body .db-certificate-page #certificateStartCamera:hover,
body .db-certificate-page #certificateStartCamera:focus-visible {
	border-color: #99700e;
	background: linear-gradient(180deg, #d1aa3b 0%, #a9790d 100%);
}

body .db-certificate-page #certificateStopCamera {
	border-color: #ded8cd;
	background: #fff;
	color: #1d3153;
}

body .db-certificate-page #certificateStopCamera:hover,
body .db-certificate-page #certificateStopCamera:focus-visible {
	border-color: #c9bfae;
	background: #fbfaf7;
}

body .db-certificate-page #certificateStopCamera:disabled {
	opacity: 1;
}

body .db-certificate-page .db-pmr-certificate {
	container-type: inline-size;
	width: min(100%, 720px);
	aspect-ratio: 595.92 / 842.88;
	height: auto;
	min-height: 0;
	margin: 0 auto;
	padding: 2.65%;
	background: #f4ecdc;
	box-shadow: 0 18px 42px rgba(31, 40, 62, .10);
}

body .db-certificate-page .db-pmr-certificate-border {
	position: relative;
	box-sizing: border-box;
	min-height: 100%;
	padding: 21.8% 9.8% 10.2%;
	border: 1px solid #c99b3b;
	background: #fffdf9;
}

body .db-certificate-page .db-pmr-certificate-border::before {
	position: absolute;
	inset: 2.5%;
	border: 1px solid #e1c98f;
	content: "";
	pointer-events: none;
}

body .db-certificate-page .db-pmr-certificate-header,
body .db-certificate-page .db-pmr-specifications,
body .db-certificate-page .db-pmr-packaging {
	position: relative;
	z-index: 1;
}

body .db-certificate-page .db-pmr-certificate-header {
	text-align: center;
}

body .db-certificate-page .db-pmr-certificate-brand {
	color: #101a33;
	font: 700 clamp(20px, 6cqw, 43px)/1.1 Georgia, "Times New Roman", serif;
	letter-spacing: .20em;
	text-indent: .20em;
}

body .db-certificate-page .db-pmr-certificate-divider {
	width: clamp(28px, 6.25cqw, 45px);
	height: clamp(2px, .55cqw, 4px);
	margin: 5% auto 4.3%;
	border-radius: 2px;
	background: #b48724;
}

body .db-certificate-page .db-pmr-certificate-header h2 {
	margin: 0;
	color: #a07922;
	font: 700 clamp(16px, 4.4cqw, 32px)/1.15 Georgia, "Times New Roman", serif;
	letter-spacing: .13em;
	text-indent: .13em;
}

body .db-certificate-page .db-pmr-certificate-number {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(5px, 1.4cqw, 10px);
	width: min(100%, 64%);
	max-width: 100%;
	margin: 4.4% auto 0;
	padding: 2.1% 3.9%;
	border: 1px solid #e0c994;
	border-radius: clamp(5px, 1.1cqw, 8px);
	background: #fbf4e5;
	color: #4e607b;
	font-size: clamp(8px, 2.3cqw, 17px);
	font-weight: 800;
	letter-spacing: .13em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
}

body .db-certificate-page .db-pmr-certificate-number span {
	flex: 0 0 auto;
}

body .db-certificate-page .db-pmr-certificate-number input {
	min-width: 0;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	background: transparent;
	box-shadow: none;
	color: #101a33;
	font: 800 clamp(10px, 3.2cqw, 23px)/1.2 var(--db-ref-sans, Arial, sans-serif);
	letter-spacing: .14em;
	text-align: center;
	text-transform: uppercase;
}

body .db-certificate-page .db-pmr-certificate-number input::placeholder {
	color: #9aa6b9;
	opacity: 1;
	font-weight: 600;
	text-align: center;
	text-transform: none;
}

body .db-certificate-page .db-pmr-certificate-number input:focus {
	box-shadow: 0 1px 0 #b48724;
}

body .db-certificate-page .db-pmr-certificate-number input:disabled {
	opacity: .95;
}

body .db-certificate-page .db-pmr-specifications {
	margin-top: 14.6%;
}

body .db-certificate-page .db-pmr-specifications h3 {
	margin: 0 0 3.2%;
	color: #4e607b;
	font: 800 clamp(9px, 2.36cqw, 17px)/1.2 var(--db-ref-sans, Arial, sans-serif);
	letter-spacing: .20em;
	text-align: center;
}

body .db-certificate-page .db-pmr-specification-panel {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 5.5%;
	padding: 2.5% 5%;
	border: 1px solid #e4d5b7;
	border-radius: clamp(6px, 1.4cqw, 10px);
	background: #fff;
}

body .db-certificate-page .db-pmr-specification-field {
	display: grid;
	align-content: center;
	gap: clamp(4px, 1.25cqw, 9px);
	min-width: 0;
	min-height: clamp(46px, 12cqw, 86px);
	padding: 1.9% 0 1.8%;
	border-bottom: 1px solid #eee4d4;
}

body .db-certificate-page .db-pmr-specification-field span {
	color: #657792;
	font-size: clamp(8px, 2.1cqw, 15px);
	font-weight: 800;
	letter-spacing: .12em;
	line-height: 1.2;
}

body .db-certificate-page .db-pmr-specification-field strong {
	color: #111b34;
	font-size: clamp(11px, 2.9cqw, 21px);
	font-weight: 700;
	line-height: 1.25;
	word-break: break-word;
}

body .db-certificate-page .db-pmr-specification-description {
	grid-column: 1 / -1;
	min-height: clamp(54px, 13.2cqw, 95px);
}

body .db-certificate-page .db-pmr-specification-description strong {
	font-size: clamp(12px, 3.05cqw, 22px);
}

body .db-certificate-page .db-pmr-specification-field:nth-last-child(-n + 2) {
	border-bottom: 0;
}

body .db-certificate-page .db-pmr-packaging {
	margin-top: 5.7%;
	padding: 4% 4.3%;
	border: 1px solid #e5d2a9;
	border-left: clamp(3px, .7cqw, 5px) solid #b48724;
	border-radius: 0 clamp(6px, 1.4cqw, 10px) clamp(6px, 1.4cqw, 10px) 0;
	background: #fbf3e2;
}

body .db-certificate-page .db-pmr-packaging h3 {
	margin: 0 0 2.5%;
	color: #101a33;
	font: 800 clamp(9px, 2.2cqw, 16px)/1.25 var(--db-ref-sans, Arial, sans-serif);
	letter-spacing: .12em;
}

body .db-certificate-page .db-pmr-packaging p {
	margin: 0;
	color: #273a59;
	font-size: clamp(10px, 2.2cqw, 16px);
	line-height: 1.65;
}

body .db-certificate-page .db-pmr-packaging strong {
	font-weight: 800;
}

body .db-certificate-page .db-pmr-certificate-controls {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 2;
	gap: 10px;
	width: min(calc(100% - 24px), 720px);
	margin: 12px auto 0;
}

body .db-certificate-page .db-pmr-certificate-controls form {
	display: flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 0;
	flex: 1 1 0;
	margin: 0;
}

body .db-certificate-page .db-pmr-certificate-controls .db-cert-button {
	width: 100%;
	min-width: 0;
	min-height: 36px;
	flex: 1 1 0;
	padding: 0 10px;
	border-radius: 5px;
	font-size: 10px;
	letter-spacing: .12em;
	white-space: nowrap;
}

body .db-certificate-page .db-pmr-certificate-controls .db-cert-button-gold {
	border-color: #b1841c;
	background: linear-gradient(180deg, #c99f2d 0%, #b58611 100%);
	color: #fff;
}

body .db-certificate-page .db-pmr-certificate-controls .db-cert-button-gold:hover,
body .db-certificate-page .db-pmr-certificate-controls .db-cert-button-gold:focus-visible {
	border-color: #99700e;
	background: linear-gradient(180deg, #d1aa3b 0%, #a9790d 100%);
	color: #fff;
}

body .db-certificate-page .db-pmr-certificate-controls #certificateDownloadButton[disabled] {
	opacity: 1;
	border-color: #ded8cd;
	background: #f3eee5;
	color: #b8ab91;
}

body .db-certificate-page .db-pmr-certificate-controls [hidden],
body .db-certificate-page .db-pmr-download-status[hidden] {
	display: none;
}

body .db-certificate-page .db-cert-lookup-status {
	min-height: 20px;
	margin: 12px 0 0;
	color: #5f6c81;
	font-size: 12px;
	line-height: 1.5;
	text-align: center;
}

body .db-certificate-page .db-cert-lookup-status[data-state="loading"] {
	color: #8b6818;
}

body .db-certificate-page .db-cert-lookup-status[data-state="success"] {
	color: #19653a;
}

body .db-certificate-page .db-cert-lookup-status[data-state="error"] {
	color: #9a3e3e;
}

body .db-certificate-page .db-pmr-download-status {
	margin: 8px 0 0;
	color: #68738a;
	font-size: 11px;
	line-height: 1.5;
	text-align: center;
}

@supports not (width: 1cqw) {
	body .db-certificate-page .db-pmr-certificate-brand {
		font-size: 28px;
	}

	body .db-certificate-page .db-pmr-certificate-divider {
		width: 36px;
		height: 3px;
	}

	body .db-certificate-page .db-pmr-certificate-header h2 {
		font-size: 22px;
	}

	body .db-certificate-page .db-pmr-certificate-number {
		gap: 6px;
		font-size: 10px;
	}

	body .db-certificate-page .db-pmr-certificate-number input {
		font-size: 14px;
	}

	body .db-certificate-page .db-pmr-specifications h3 {
		font-size: 11px;
	}

	body .db-certificate-page .db-pmr-specification-field {
		gap: 5px;
		min-height: 52px;
	}

	body .db-certificate-page .db-pmr-specification-field span {
		font-size: 10px;
	}

	body .db-certificate-page .db-pmr-specification-field strong,
	body .db-certificate-page .db-pmr-specification-description strong {
		font-size: 15px;
	}

	body .db-certificate-page .db-pmr-specification-description {
		min-height: 60px;
	}

	body .db-certificate-page .db-pmr-packaging {
		border-left-width: 4px;
	}

	body .db-certificate-page .db-pmr-packaging h3,
	body .db-certificate-page .db-pmr-packaging p {
		font-size: 11px;
	}
}

@media (max-width: 900px) {
	body .db-certificate-page .db-cert-workspace {
	grid-template-columns: 1fr;
	align-items: start;
	}

	body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) {
		min-height: 0;
	}

	body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-camera {
		flex: 0 0 auto;
		min-height: 270px;
	}

	body .db-certificate-page .db-pmr-certificate {
		width: min(100%, 720px);
	}
}

@media (max-width: 620px) {
	body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) {
		padding: 26px 23px;
	}

	body .db-certificate-page .db-cert-workspace > .db-cert-panel:not(.db-pmr-certificate-panel) .db-cert-camera {
		/* Keep the visible mobile viewport square while leaving the camera
		 * MediaStream constraints and detector pipeline unchanged. */
		flex: 0 0 auto;
		width: 100%;
		min-height: 0;
		aspect-ratio: 1 / 1;
		height: auto;
	}

	body .db-certificate-page .db-pmr-certificate-number {
		width: min(100%, 78%);
	}

	/* The narrow certificate copy needs a content-driven height. Keeping the
	 * fixed A4 box here lets the packaging copy overflow into the controls. */
	body .db-certificate-page .db-pmr-certificate {
		aspect-ratio: auto;
		min-height: 0;
	}

	body .db-certificate-page .db-pmr-certificate-border {
		min-height: 0;
	}

	body .db-certificate-page .db-pmr-certificate-controls {
		width: 100%;
		align-items: stretch;
		flex-direction: column;
		gap: 10px;
	}

	body .db-certificate-page .db-pmr-certificate-controls form,
	body .db-certificate-page .db-pmr-certificate-controls .db-cert-button {
		width: 100%;
		flex: 0 0 auto;
	}
}

@media print {
	body .db-certificate-page .db-pmr-certificate-controls,
	body .db-certificate-page .db-cert-lookup-status,
	body .db-certificate-page .db-pmr-download-status {
		display: none;
	}

	body .db-certificate-page .db-pmr-certificate {
		width: 100%;
		box-shadow: none;
	}

	body .db-certificate-page .db-pmr-certificate-number input {
		border: 0;
	}
}
