.ovse {
	max-width: 520px;
	margin: 1.5rem auto;
	padding: 1.5rem;
	border: 1px solid #d6d9e0;
	border-radius: 8px;
	background: #fff;
	color: #1d2333;
}
.ovse__title { margin: 0 0 .5rem; }
.ovse__hint { margin: 0 0 1rem; color: #4a5266; }
.ovse__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.ovse__btn {
	min-height: 44px;
	padding: .6rem 1.2rem;
	border: 2px solid #0b3d91;
	border-radius: 6px;
	background: #fff;
	color: #0b3d91;
	font-weight: 600;
	cursor: pointer;
}
.ovse__btn--app { background: #0b3d91; color: #fff; }
.ovse__btn:focus-visible { outline: 3px solid #f5a623; outline-offset: 2px; }
.ovse__qr { margin-top: 1.25rem; text-align: center; }
.ovse__qr-img img { max-width: 100%; height: auto; image-rendering: pixelated; }
.ovse__timer { font-size: .9rem; color: #4a5266; }
.ovse__status { margin: 1rem 0 0; font-weight: 600; }
.ovse__status--ok { color: #1a7f37; }
.ovse__status--error { color: #b42318; }
.ovse__result { margin-top: 1rem; display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.ovse__photo { width: 110px; height: auto; border-radius: 4px; border: 1px solid #d6d9e0; }
.ovse__result dl { display: grid; grid-template-columns: auto 1fr; gap: .25rem .75rem; margin: 0; flex: 1; min-width: 220px; }
.ovse__result dt { font-weight: 600; }
.ovse__result dd { margin: 0; word-break: break-word; }
.ovse__store { margin-top: .75rem; font-size: .9rem; }
.ovse__btn--ghost { border-color: #8a93a6; color: #4a5266; }

/* ---- Officer login / portal ---- */
.ovse-auth {
	max-width: 420px;
	margin: 1.5rem auto;
	padding: 1.75rem;
	border: 1px solid #d6d9e0;
	border-radius: 10px;
	background: #fff;
	color: #1d2333;
	box-shadow: 0 1px 3px rgba(16, 24, 64, .06);
}
.ovse-auth__title { margin: 0 0 1rem; font-size: 1.35rem; }
.ovse-auth__lead { color: #4a5266; }
.ovse-auth__hint { color: #4a5266; margin: 0 0 1rem; }
.ovse-auth__steps { display: flex; gap: .5rem; list-style: none; margin: 0 0 1.25rem; padding: 0; }
.ovse-auth__steps li {
	flex: 1; text-align: center; font-size: .8rem; font-weight: 600; color: #8a93a6;
	padding: .4rem .25rem; border-bottom: 3px solid #e3e6ec;
}
.ovse-auth__steps li.is-active { color: #0b3d91; border-bottom-color: #0b3d91; }
.ovse-auth__steps li.is-done { color: #1a7f37; border-bottom-color: #1a7f37; }
.ovse-auth__panel { display: none; flex-direction: column; gap: 1rem; }
.ovse-auth__panel.is-active { display: flex; }
.ovse-auth__panel label { display: flex; flex-direction: column; gap: .35rem; font-weight: 600; }
.ovse-auth__panel input {
	min-height: 44px; padding: .5rem .7rem; border: 1px solid #b9c0cf; border-radius: 6px;
	font-size: 1rem; font-weight: 400;
}
.ovse-auth__panel input:focus-visible { outline: 3px solid #f5a623; outline-offset: 1px; border-color: #0b3d91; }
.ovse-auth__panel input[name="code"] { letter-spacing: .5em; text-align: center; font-size: 1.3rem; }
.ovse-auth__msg { min-height: 1.2em; margin: 0 0 1rem; font-weight: 600; }
.ovse-auth__msg--ok { color: #1a7f37; }
.ovse-auth__msg--error { color: #b42318; }
.ovse-portal { max-width: 760px; }
.ovse-portal__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
