@font-face {
	font-family: 'Instrument Sans';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('fonts/instrument-sans-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Instrument Sans';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('fonts/instrument-sans-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--deep: #0E1C2B;
	--accent: #2673A9;
	--accent-lt: #4C9CD1;
	--accent-wash: #EAF3FA;
	--accent-line: #CFE3F2;

	--surface: #F6F8FB;
	--chrome: #FFFFFF;
	--chrome-soft: #F1F5F9;
	--card: #FFFFFF;
	--line: #E4EAF0;
	--line-soft: #EFF3F7;

	--ink: #16202C;
	--ink-mute: #4F6274;
	--ink-faint: #607385;
	--accent-dk: #1B587F;

	--ok: #1D7A4C;
	--warn: #A56A00;
	--bad: #C0392B;

	--sb-w: 292px;
	--hd-h: 58px;
	--r: 8px;
	--ff: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
	--shadow-sm: 0 1px 2px rgba(22,32,44,.05);
	--shadow-md: 0 6px 20px rgba(22,32,44,.09);
}

body.jv {
	font-family: var(--ff);
	font-size: 13px;
	line-height: 1.5;
	color: var(--ink);
	background: var(--surface);
	margin: 0;
	-webkit-font-smoothing: antialiased;
}

body.jv a { text-decoration: none; }

.jv-main a:not(.btn):not(.jv-cu-open), .jv-card a:not(.btn), .jv-footer a:not(.btn),
.jv-ai-log a:not(.btn), .jv-menu-addr a:not(.btn) {
	color: var(--accent);
	text-decoration: none;
}

.jv-main a:not(.btn):not(.jv-cu-open):hover, .jv-card a:not(.btn):hover,
.jv-footer a:not(.btn):hover, .jv-ai-log a:not(.btn):hover {
	color: var(--accent-dk);
	text-decoration: underline;
}

body.jv a.btn-primary, body.jv a.btn-primary:hover { color: #fff; }

body.jv h1, body.jv h2, body.jv h3, body.jv h4 {
	font-weight: 600;
	letter-spacing: -0.012em;
	color: var(--ink);
	margin: 0 0 12px 0;
}

body.jv h1 { font-size: 22px; }
body.jv h2 { font-size: 18px; }
body.jv h3 { font-size: 15px; }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }

.jv-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	height: var(--hd-h);
	background: var(--chrome);
	border-bottom: 1px solid var(--line);
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0 14px;
	z-index: 1030;
}

.jv-brand { display: flex; align-items: center; gap: 9px; text-decoration: none; flex: none; }
.jv-brand:hover { text-decoration: none; }
.jv-logo { height: 26px; width: auto; display: block; }
.jv-logo-mark { height: 26px; width: 26px; display: none; }

.jv-iconbtn {
	background: none;
	border: 0;
	color: var(--ink-mute);
	width: 34px; height: 34px;
	border-radius: 7px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	cursor: pointer;
	flex: none;
}

.jv-iconbtn:hover { background: var(--chrome-soft); color: var(--ink); }

.jv-search { position: relative; flex: 1 1 auto; max-width: 400px; margin-left: 4px; }

.jv-search i {
	position: absolute;
	left: 11px; top: 50%;
	transform: translateY(-50%);
	color: var(--ink-faint);
	font-size: 14px;
	pointer-events: none;
}

.jv-search input {
	width: 100%;
	height: 34px;
	border: 1px solid var(--line);
	border-radius: 7px;
	background: var(--surface);
	color: var(--ink);
	font: inherit;
	padding: 0 10px 0 32px;
}

.jv-search input::placeholder { color: var(--ink-faint); }
.jv-search input:focus { background: #fff; border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px rgba(44,127,191,.12); }

.jv-hdr-right { margin-left: auto; display: flex; align-items: center; gap: 3px; }

.jv-hlink {
	color: var(--ink-mute);
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 10px;
	border-radius: 7px;
	white-space: nowrap;
	font-weight: 500;
}

.jv-hlink:hover { background: var(--chrome-soft); color: var(--ink); text-decoration: none; }
.jv-hlink i { font-size: 15px; color: var(--ink-faint); }
.jv-hlink:hover i { color: var(--accent); }

.jv-ai-btn {
	background: var(--accent);
	color: #fff;
	border: 0;
	height: 34px;
	padding: 0 13px;
	border-radius: 7px;
	font: inherit;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	cursor: pointer;
	margin-left: 5px;
}

.jv-ai-btn:hover { background: #24689D; color: #fff; }

.jv-user {
	display: flex;
	align-items: center;
	gap: 8px;
	background: none;
	border: 0;
	color: var(--ink);
	padding: 4px 6px;
	border-radius: 7px;
	cursor: pointer;
	font: inherit;
	margin-left: 4px;
}

.jv-user:hover { background: var(--chrome-soft); }

.jv-avatar {
	width: 28px; height: 28px;
	border-radius: 50%;
	background: var(--accent-wash);
	color: var(--accent);
	border: 1px solid var(--accent-line);
	font-size: 12px;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	text-transform: uppercase;
}

.jv-user-name { max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }

.jv-sidebar {
	position: fixed;
	top: var(--hd-h); bottom: 0; left: 0;
	width: var(--sb-w);
	background: var(--surface);
	border-right: 1px solid var(--line);
	overflow-y: auto;
	overflow-x: hidden;
	z-index: 1020;
	padding: 8px 8px 26px 8px;
	scrollbar-width: thin;
	scrollbar-color: #CBD6E0 transparent;
}

.jv-sidebar::-webkit-scrollbar { width: 8px; }
.jv-sidebar::-webkit-scrollbar-thumb { background: #CBD6E0; border-radius: 4px; }
.jv-sidebar::-webkit-scrollbar-thumb:hover { background: #AFBECD; }

.jv-group {
	display: flex;
	align-items: stretch;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 4px;
	box-shadow: 0 1px 1px rgba(22,32,44,.03);
}

.jv-gtag {
	flex: none;
	width: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--chrome-soft);
	border-right: 1px solid var(--line-soft);
	padding: 6px 0;
}

.jv-gtag span {
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--ink-faint);
	white-space: nowrap;
	position: sticky;
	top: 10px;
}

.jv-nav {
	list-style: none;
	margin: 0;
	padding: 4px 6px;
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.jv-nav a {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--ink-mute);
	padding: 5px 10px;
	border-radius: 7px;
	white-space: nowrap;
	line-height: 1.3;
	font-weight: 500;
	position: relative;
	overflow: hidden;
}

.jv-nav .jv-label { overflow: hidden; text-overflow: ellipsis; }

.jv-nav a:hover { background: var(--chrome-soft); color: var(--ink); text-decoration: none; }

.jv-nav a.on {
	background: var(--accent-wash);
	color: var(--accent-dk);
	font-weight: 600;
}

.jv-nav a.on::before {
	content: '';
	position: absolute;
	left: -8px; top: 50%;
	transform: translateY(-50%);
	width: 3px; height: 18px;
	border-radius: 0 3px 3px 0;
	background: var(--accent);
}

.jv-nav a i { font-size: 15px; line-height: 1; width: 17px; text-align: center; flex: none; color: var(--ink-faint); }
.jv-nav a:hover i { color: var(--ink-mute); }
.jv-nav a.on i { color: var(--accent-dk); }

body.sb-collapsed { --sb-w: 68px; }
body.sb-collapsed .jv-gtag { display: none; }
body.sb-collapsed .jv-nav { padding: 4px 6px; }
body.sb-collapsed .jv-nav a { justify-content: center; padding: 9px 0; gap: 0; }
body.sb-collapsed .jv-nav a.on::before { display: none; }
body.sb-collapsed .jv-nav .jv-label { display: none; }
body.sb-collapsed .jv-brand:has(.jv-logo-mark) .jv-logo { display: none; }
body.sb-collapsed .jv-logo-mark { display: block; }

.jv-body {
	margin-left: var(--sb-w);
	padding-top: var(--hd-h);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	transition: margin-left .18s ease;
}

.jv-main { flex: 1 0 auto; padding: 22px 26px 34px 26px; }

.jv-page-head { display: flex; align-items: center; gap: 14px; padding-top: 10px; margin: 0 0 12px 0; flex-wrap: wrap; }

body.jv .jv-page-head h1 { margin: 0; }

.jv-footer {
	flex: none;
	border-top: 1px solid var(--line);
	background: var(--chrome);
	padding: 13px 26px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--ink-faint);
	font-size: 12px;
	gap: 12px;
	flex-wrap: wrap;
}

body.jv-pub { background: var(--surface); min-height: 100vh; display: flex; flex-direction: column; }

.jv-pub-main {
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 32px 16px;
	background-image: linear-gradient(rgba(246,248,251,.86), rgba(246,248,251,.94)), url('../images/bsi-login-bg.jpg');
	background-size: cover;
	background-position: center bottom;
	background-repeat: no-repeat;
}

.jv-pub-wrap { width: 100%; display: flex; justify-content: center; }

.jv-pub-footer {
	flex: none;
	padding: 14px 22px;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	color: var(--ink-faint);
	font-size: 12px;
}

.jv-pub-recaptcha { flex: 1 1 auto; text-align: center; min-width: 0; }
body.jv .jv-pub-recaptcha a { color: var(--ink-faint); text-decoration: underline; }
body.jv .jv-pub-recaptcha a:hover { color: var(--ink-mute); }

@media (max-width: 575.98px) {
	.jv-pub-recaptcha { flex-basis: 100%; order: 3; text-align: left; }
}

.jv-card {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 14px;
	box-shadow: 0 12px 34px rgba(22,32,44,.10);
	padding: 30px;
	width: 100%;
	max-width: 400px;
}

.jv-card-logo { height: 30px; width: auto; display: block; margin-bottom: 18px; }
.jv-sitebar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 16px 0; padding: 10px 14px; border: 1px solid var(--accent-line); border-left: 4px solid var(--accent); border-radius: var(--r); background: var(--accent-wash); color: var(--ink); font-size: 13px; }
.jv-sitebar > .bi { color: var(--accent); font-size: 16px; flex: none; }
.jv-sitebar-txt { flex: 1 1 auto; min-width: 0; }
.jv-sitebar-dom { color: var(--ink-mute); margin-left: 8px; }
.jv-sitebar-switch { flex: none; font-weight: 600; white-space: nowrap; }
.jv-sitebar-short { display: none; }
@media (max-width: 575.98px) {
	.jv-sitebar { flex-wrap: nowrap; gap: 8px; padding: 7px 11px; margin-bottom: 12px; font-size: 12px; }
	.jv-sitebar > .bi { font-size: 14px; }
	.jv-sitebar-txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.jv-sitebar-lead, .jv-sitebar-long { display: none; }
	.jv-sitebar.has-dom .jv-sitebar-name { display: none; }
	.jv-sitebar-dom { margin-left: 0; color: var(--ink); font-weight: 600; }
	.jv-sitebar-short { display: inline; }
}
.jv-pick-list { display: flex; flex-direction: column; gap: 10px; width: 100%; }
.jv-pick { display: flex; flex-direction: column; gap: 2px; width: 100%; text-align: left; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); cursor: pointer; }
.jv-pick:hover { border-color: var(--accent-lt); background: var(--accent-wash); }
.jv-pick-name { font-weight: 600; color: var(--ink); }
.jv-pick-site { font-size: 12px; color: var(--ink-mute); }
.jv-card-foot { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.jv-card-foot a { font-weight: 500; }
.jv-card-note { color: var(--ink-faint); font-size: 11.5px; line-height: 1.45; margin: 8px 0 0 0; }

.jv-card-note-warn { text-align: center; margin: 4px 0 0 0; }

.jv-card form, .jv-card > div.p-3 { padding: 0 !important; box-shadow: none !important; background: none !important; border: 0 !important; }

.jv-card .jv-form-grid > .jv-f-4,
.jv-card .jv-form-grid > .jv-f-6 { grid-column: 1 / -1; }
.jv-card .jv-form-actions { margin-top: 16px; padding-top: 0; border-top: 0; }
.jv-card .jv-form-actions .btn { width: 100%; }
.jv-card h4 { font-size: 17px; font-weight: 600; margin-bottom: 4px; }
.jv-card-sub { color: var(--ink-mute); margin-bottom: 22px; }

body.jv .error {
	background: #FDECEA;
	border: 1px solid #F5C6C2;
	color: var(--bad);
	border-radius: var(--r);
	padding: 11px 13px !important;
	font-weight: 500;
	margin: 0 0 14px 0;
	width: 100%;
	max-width: 400px;
}

.jv-ai {
	position: fixed;
	top: 0; right: 0; bottom: 0;
	width: 440px;
	max-width: 100vw;
	background: var(--card);
	box-shadow: -12px 0 34px rgba(22,32,44,.16);
	transform: translateX(100%);
	transition: transform .22s cubic-bezier(.4,0,.2,1);
	z-index: 1080;
	display: flex;
	flex-direction: column;
}

.jv-ai.open { transform: translateX(0); }

.jv-ai-head {
	background: var(--chrome);
	border-bottom: 1px solid var(--line);
	color: var(--ink);
	padding: 0 10px 0 16px;
	height: var(--hd-h);
	display: flex;
	align-items: center;
	gap: 9px;
	flex: none;
}

.jv-ai-head strong { font-weight: 600; font-size: 14px; }
.jv-ai-head i.bi-stars { color: var(--accent); font-size: 17px; }

.jv-ai-log { flex: 1 1 auto; overflow-y: auto; padding: 16px; background: var(--surface); }

.jv-msg { display: block; padding: 10px 13px; border-radius: 12px; margin-bottom: 10px; max-width: 88%; white-space: normal; }
.jv-msg-ai { background: var(--card); border: 1px solid var(--line); border-bottom-left-radius: 3px; color: var(--ink); }
.jv-msg-me { background: var(--accent); color: #fff; margin-left: auto; border-bottom-right-radius: 3px; }

.jv-ai-foot { flex: none; border-top: 1px solid var(--line); padding: 12px; background: var(--card); }

.jv-ai-foot textarea {
	width: 100%;
	height: 92px;
	border: 1px solid var(--line);
	border-radius: var(--r);
	padding: 9px 11px;
	font: inherit;
	resize: vertical;
}

.jv-ai-foot textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(44,127,191,.12); }

.jv-scrim {
	position: fixed;
	inset: 0;
	background: rgba(22,32,44,.34);
	opacity: 0;
	visibility: hidden;
	transition: opacity .22s ease, visibility .22s ease;
	z-index: 1070;
}

.jv-scrim.on { opacity: 1; visibility: visible; }

body.jv .dropdown-menu {
	border: 1px solid var(--line);
	border-radius: var(--r);
	box-shadow: var(--shadow-md);
	font-size: 13px;
	padding: 6px;
	min-width: 250px;
}

body.jv .dropdown-item { border-radius: 6px; padding: 7px 10px; color: var(--ink); }
body.jv .dropdown-item:hover { background: var(--chrome-soft); }
body.jv .dropdown-item:active { background: var(--accent); color: #fff; }

.jv-menu-head { padding: 8px 10px 10px 10px; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
.jv-menu-head strong { display: block; font-size: 13px; }
.jv-menu-head span { color: var(--ink-mute); font-size: 12px; word-break: break-all; }
.jv-menu-addr { padding: 9px 10px; color: var(--ink-mute); font-size: 12px; line-height: 1.55; border-top: 1px solid var(--line); margin-top: 6px; }
.jv-menu-addr strong { color: var(--ink); display: block; }

.jv-chart-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}

.jv-chart-title { font-size: 16px; font-weight: 600; margin: 0; letter-spacing: -0.012em; }
.jv-chart-sub { margin: 3px 0 0 0; color: var(--ink-mute); font-size: 12px; }
.jv-chart-sub strong { color: var(--ink); font-weight: 600; }

.jv-range { display: inline-flex; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; flex: none; }

.jv-range a, .jv-range span {
	padding: 4px 10px;
	font-size: 12px;
	font-weight: 500;
	color: var(--ink-mute);
	background: var(--card);
	border-right: 1px solid var(--line);
	line-height: 1.5;
}

.jv-range a:last-child, .jv-range span:last-child { border-right: 0; }
.jv-range a:hover { background: var(--chrome-soft); color: var(--ink); text-decoration: none; }
.jv-range .on { background: var(--accent-wash); color: var(--accent-dk); font-weight: 600; }

.jv-stat {
	position: relative;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 15px 17px 14px 17px;
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	height: 100%;
}

.jv-stat::before {
	content: '';
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 3px;
	background: var(--accent);
}

.jv-stat.c1::before { background: #1A73E8; }
.jv-stat.c2::before { background: #12B5CB; }
.jv-stat.c3::before { background: #9334E6; }

.jv-stat-label {
	display: block;
	font-size: 12px;
	font-weight: 500;
	color: var(--ink-mute);
	margin-bottom: 5px;
}

.jv-stat-value {
	display: block;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--ink);
}

.jv-stat-group {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .085em;
	text-transform: uppercase;
	color: var(--ink-faint);
	margin: 0 0 10px 0;
}

a.jv-stat { display: block; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
a.jv-stat:hover { border-color: var(--accent-line); box-shadow: 0 4px 14px rgba(22,32,44,.09); text-decoration: none; transform: translateY(-1px); }
a.jv-stat:hover .jv-stat-value { color: var(--accent-dk); }

.jv-stat.hero { padding: 19px 21px 18px 21px; }
.jv-stat.hero .jv-stat-value { font-size: 42px; }
.jv-stat.hero .jv-stat-label { font-size: 13px; }

.jv-stat-delta { display: flex; align-items: center; gap: 5px; margin-top: 7px; font-size: 12px; color: var(--ink-mute); }
.jv-stat-delta i { font-size: 13px; line-height: 1; }
.jv-stat-delta .up { color: #15803D; }
.jv-stat-delta .down { color: #C0392B; }
.jv-stat-delta .flat { color: var(--ink-faint); }
.jv-stat-delta em { font-style: normal; font-weight: 600; color: var(--ink); }

.jv-stat-quiet { margin-top: 7px; font-size: 12px; color: var(--ink-faint); }

body.jv .card { border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow-sm); }
body.jv .btn { font-size: 13px; border-radius: 7px; font-weight: 500; }
body.jv .btn-primary { background: var(--accent); border-color: var(--accent); }
body.jv .btn-primary:hover { background: #24689D; border-color: #24689D; }

body.jv .btn-outline-secondary { color: var(--ink-mute); border-color: var(--line); background: var(--card); }
body.jv .btn-outline-secondary:hover { background: var(--chrome-soft); border-color: var(--line); color: var(--ink); }
body.jv .table { font-size: 13px; }
body.jv .table > :not(caption) > * > * { padding: 8px 10px; }
body.jv .table > thead { background: var(--surface); }
body.jv .table > thead th { color: var(--ink-mute); font-weight: 600; border-bottom-color: var(--line); }

.jv-mobile-only { display: none; }

.jv-sm-only { display: none; }

@media (max-width: 991.98px) {
	.jv-sidebar { transform: translateX(-100%); transition: transform .2s ease; width: 292px; box-shadow: var(--shadow-md); }

	body.sb-open .jv-sidebar { transform: translateX(0); z-index: 1075; }
	body.jv .jv-body { margin-left: 0; }
	body.sb-collapsed { --sb-w: 292px; }
	body.sb-collapsed .jv-nav { padding: 0 8px; }
	body.sb-collapsed .jv-nav a { justify-content: flex-start; padding: 7px 12px; gap: 11px; }
	body.sb-collapsed .jv-nav a.on::before { display: block; }
	body.sb-collapsed .jv-nav .jv-label { display: inline; }
	body.sb-collapsed .jv-gtag { display: flex; }
	body.sb-collapsed .jv-logo { display: block; }
	body.sb-collapsed .jv-logo-mark { display: none; }
	.jv-search { max-width: none; }
	.jv-hlink span { display: none; }
	.jv-user-name { display: none; }
	.jv-mobile-only { display: inline-flex; }

	.jv-iconbtn { width: 44px; height: 44px; font-size: 19px; }
	.jv-hlink { padding: 0 11px; height: 44px; }
	.jv-hlink i { font-size: 18px; }
	.jv-ai-btn { height: 44px; }
	.jv-user { min-height: 44px; padding: 4px 8px; }

	.jv-nav a { padding: 8px 10px; }
	.jv-nav { padding: 4px 6px; }

	.jv-ai-foot .btn { padding: 11px; }
	body.jv .dropdown-item { padding: 12px 10px; }
	body.jv .dropdown-menu { min-width: 264px; }

	body.jv .jv-main table.table,
	body.jv .jv-main .table-responsive-lg {
		display: block;
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	body.jv .pagination { flex-wrap: wrap; row-gap: 6px; }
	body.jv .jv-main [style*="float:left"],
	body.jv .jv-main [style*="float: left"],
	body.jv .jv-main [style*="float:right"],
	body.jv .jv-main [style*="float: right"] { float: none !important; text-align: left !important; max-width: 100%; }
}

@media (max-width: 575.98px) {
	.jv-main { padding: 16px 14px 28px 14px; }
	.jv-ai { width: 100%; }

	body.jv { --hd-h: 116px; }

	.jv-header { flex-wrap: wrap; align-content: flex-start; padding-top: 8px; padding-bottom: 12px; }

	.jv-search {
		order: 10;
		flex: 0 0 100%;
		max-width: none;
		margin-left: 0;
	}

	.jv-search input { height: 40px; }
	.jv-ai-head { height: 58px; }

	body.jv.hdr-compact { --hd-h: 60px; }
	body.jv.hdr-compact .jv-header { padding-top: 8px; padding-bottom: 8px; }
	body.jv.hdr-compact .jv-search { display: none; }

	.jv-hdr-right .jv-hlink { display: none; }
	body.jv .dropdown-item.jv-sm-only { display: block; }
	.jv-ai-btn span { display: none; }
	.jv-ai-btn { padding: 0 10px; }
}

@media print {
	.jv-header, .jv-sidebar, .jv-footer, .jv-ai, .jv-scrim, .noprint { display: none !important; }
	.jv-body { margin: 0; padding: 0; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; }

	.spinner-border,
	.spinner-grow {
		animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name) !important;
	}
}

.jv-form-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	row-gap: 0;
	column-gap: 20px;
	align-items: start;
}

.jv-form-grid > * { grid-column: 1 / -1; }
.jv-form-grid > .jv-f-4 { grid-column: span 4; }
.jv-form-grid > .jv-f-6 { grid-column: span 6; }
.jv-form-grid > .jv-f-12 { grid-column: 1 / -1; }
.jv-form-grid > hr { margin: 4px 0; border-color: var(--line); }

.jv-field { min-width: 0; padding-bottom: 16px; }

body.jv .jv-form-grid > .jv-form-group {
	grid-column: 1 / -1;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .085em;
	text-transform: uppercase;
	color: var(--ink-mute);
	background: var(--chrome-soft);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	margin: 12px -16px 18px -16px;
	padding: 9px 16px;
}

body.jv .jv-form-grid > .jv-form-group:first-child {
	margin-top: -16px;
	border-top: 0;
	border-radius: .375rem .375rem 0 0;
}

.jv-field-label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--ink-mute);
	margin-bottom: 5px;
	line-height: 1.35;
}

.jv-field-label span { color: var(--bad); }

.jv-field-action {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: none;
	border: 0;
	padding: 0;
	margin-left: 4px;
	font: inherit;
	font-size: 11.5px;
	font-weight: 600;
	color: var(--accent);
	cursor: pointer;
}

.jv-field-action:hover { color: var(--accent-dk); text-decoration: underline; }
.jv-field-action i { font-size: 12px; }

.jv-field-note {
	display: block;
	font-size: 11.5px;
	color: var(--ink-faint);
	margin: 5px 0 0 0;
	line-height: 1.4;
}

.jv-check-group { display: flex; flex-wrap: wrap; gap: 4px 14px; padding-top: 5px; }

@supports (grid-template-rows: subgrid) {
	.jv-form-grid > .jv-field {
		grid-row: span 3;
		display: grid;
		grid-template-rows: subgrid;
		align-content: start;
	}

	.jv-form-grid > .jv-field { align-items: start; }
}

body.jv .jv-field .form-control,
body.jv .jv-field .form-select {
	font-size: 13px;
	border-color: var(--line);
	border-radius: 7px;
	padding: 7px 10px;
	color: var(--ink);
}

body.jv .jv-field .form-control:focus,
body.jv .jv-field .form-select:focus {
	border-color: var(--accent);
	box-shadow: 0 0 0 3px rgba(44,127,191,.12);
}

body.jv .jv-field textarea.form-control { min-height: 90px; }

.jv-field-readonly {
	background: var(--chrome-soft);
	border: 1px solid var(--line-soft);
	border-radius: 7px;
	padding: 7px 10px;
	min-height: 33px;
	color: var(--ink);
}

.jv-f-short .form-control,
.jv-f-short .form-select { max-width: 260px; }

.jv-w-xs .form-control { max-width: 130px; }
.jv-w-sm .form-control { max-width: 240px; }
.jv-w-md .form-control { max-width: 400px; }

.jv-field .d-inline { display: inline-block !important; }
.jv-field input.d-inline { width: auto; min-width: 80px; }
.jv-f-short .jv-field-conv input.d-inline { width: 62px; min-width: 0; }

.jv-field-conv {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 6px;
	font-size: 12px;
	color: var(--ink-faint);
}

body.jv .jv-field .form-check { margin-bottom: 0; min-height: 0; }
body.jv .jv-field .form-check-label { color: var(--ink); }
body.jv .jv-field .form-check-input:checked { background-color: var(--accent); border-color: var(--accent); }
body.jv .jv-field .form-check-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(44,127,191,.12); }

.jv-edit-head { align-items: flex-start; }
.jv-edit-titles { min-width: 0; }
body.jv .jv-edit-head h1 { margin: 2px 0 0 0; }

.jv-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ink-faint);
}

.jv-back:hover { color: var(--accent-dk); text-decoration: none; }
.jv-back i { font-size: 13px; }

.jv-form-actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--line);
}

body.jv .jv-main .jv-form-actions {
	position: sticky;
	bottom: 0;
	z-index: 5;
	background: var(--card);
	margin: 20px -16px -16px -16px;
	padding: 12px 16px;
	border-radius: 0 0 var(--r) var(--r);
	box-shadow: 0 -6px 16px rgba(22,32,44,.06);
}

@media (max-width: 767.98px) {
	.jv-form-grid > .jv-f-4,
	.jv-form-grid > .jv-f-6 { grid-column: 1 / -1; }
	.jv-form-grid { column-gap: 14px; }
}

body.jv .tox-tinymce {
	border: 1px solid var(--line);
	border-radius: 7px;
	font-family: var(--ff);
}

body.jv .tox.tox-tinymce.tox-edit-focus {
	border-color: var(--accent);
	box-shadow: 0 0 0 3px rgba(44,127,191,.12);
}

body.jv .tox.tox-edit-focus .tox-edit-area::before { opacity: 0; }

body.jv .tox .tox-editor-header {
	background: var(--chrome-soft);
	border-bottom: 1px solid var(--line-soft);
	box-shadow: none;
}

body.jv .tox .tox-menubar,
body.jv .tox .tox-toolbar,
body.jv .tox .tox-toolbar__primary,
body.jv .tox .tox-toolbar-overlord { background: transparent; }

body.jv .tox .tox-statusbar {
	background: var(--chrome-soft);
	border-top: 1px solid var(--line-soft);
	color: var(--ink-faint);
}

body.jv .tox-tinymce-aux { font-family: var(--ff); }

.jv-cal-sticky {
	position: sticky;
	top: var(--hd-h);
	z-index: 20;
	background: var(--surface);
	border-bottom: 1px solid var(--line);
	margin: 0 -26px 16px -26px;
	padding: 0 26px 12px 26px;
}

.jv-cal-sticky .jv-page-head { margin-bottom: 10px; }
.jv-cal-head-acts { margin-left: auto; display: flex; gap: 8px; align-items: center; }

.jv-hopper { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }

.jv-hopper-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .085em;
	text-transform: uppercase;
	color: var(--ink-faint);
}

.jv-hopper-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 3px 10px;
	font-size: 12px;
	color: var(--ink-mute);
}

.jv-hopper-chip b { color: var(--accent-dk); }

.jv-cal-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.jv-cal-legend { display: flex; gap: 14px; align-items: center; }
.jv-cal-key { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--ink-mute); }

.jv-key-dot { width: 26px; height: 16px; border-radius: 4px; display: inline-block; }

.jv-key-dot.gray { background: var(--chrome-soft); border: 1px solid #B4C2D0; }
.jv-key-dot.green { background: #DDF0E5; border: 1px solid #A9D6BE; }

.jv-cal-month { font-size: 18px; font-weight: 600; letter-spacing: -0.012em; color: var(--ink); }
.jv-cal-navwrap { display: flex; align-items: center; gap: 8px; }

body.jv .jv-cal-nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	font-size: 15px;
}

.jv-cal-daypill {
	display: inline-block;
	border-radius: 20px;
	padding: 2px 10px;
	font-size: 12px;
	margin-bottom: 4px;
}

.jv-cal-daypill.gray { background: var(--chrome-soft); border: 1px solid var(--line); color: var(--ink-mute); }
.jv-cal-daypill.green { background: #E9F6EF; border: 1px solid #C9E7D6; color: #15803D; }

.jv-cal-listhead { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 22px 0 12px 0; }
.jv-cal-listhead h2 { margin: 0; }

body.jv .jv-cal-bar .btn i,
body.jv .jv-cal-listhead .btn i { margin-right: 5px; }

@media (max-width: 991.98px) {
	.jv-cal-sticky { margin-left: -14px; margin-right: -14px; padding-left: 14px; padding-right: 14px; }
}

body.jv .jv-ai-btn-list { display: inline-flex; align-items: center; gap: 6px; color: var(--accent); }
body.jv .jv-ai-btn-list:hover { color: var(--accent-dk); border-color: var(--accent-line); background: var(--accent-wash); }

.jv-ai-card {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 10px;
	box-shadow: var(--shadow-sm);
	padding: 22px;
	max-width: 720px;
}

.jv-ai-card .jv-field { padding-bottom: 16px; }
.jv-ai-card .jv-field:last-of-type { padding-bottom: 0; }
.jv-ai-card .jv-form-actions { margin-top: 18px; }

.jv-ai-warn {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	background: #FFF8E6;
	border: 1px solid #F2E0B0;
	border-radius: var(--r);
	padding: 11px 13px;
	margin-top: 16px;
	color: var(--ink-mute);
	line-height: 1.5;
}

.jv-ai-warn i { color: var(--warn); font-size: 15px; line-height: 1.4; flex: none; }
.jv-ai-warn strong { color: var(--ink); display: block; }

.jv-ai-done {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 10px;
	box-shadow: var(--shadow-sm);
	padding: 34px 26px;
	max-width: 720px;
	text-align: center;
}

.jv-ai-done > i { font-size: 30px; color: var(--ok); display: block; margin-bottom: 12px; }
.jv-ai-done h2 { margin: 0 0 10px 0; }
.jv-ai-done-title { font-size: 15px; font-weight: 600; color: var(--ink); margin: 0 0 6px 0; }
.jv-ai-done-sub { color: var(--ink-mute); margin: 0 auto 20px auto; max-width: 46ch; }
.jv-ai-done-acts { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

.jv-ai-running { text-align: center; padding: 34px 26px; }
.jv-ai-running h2 { margin: 0 0 10px 0; }
.jv-ai-spin { margin-bottom: 14px; }
.jv-ai-spin .spinner-border { color: var(--accent); width: 30px; height: 30px; border-width: 3px; }

.jv-ai-steps {
	list-style: none;
	margin: 0 auto 16px auto;
	padding: 0;
	display: inline-flex;
	flex-direction: column;
	gap: 8px;
	text-align: left;
	font-size: 12.5px;
}

.jv-ai-steps li {
	display: flex;
	align-items: center;
	gap: 9px;
	transition: color .2s ease;
}

.jv-ai-steps li i,
.jv-ai-steps li .spinner-border { width: 15px; flex: none; text-align: center; font-size: 14px; line-height: 1; }
.jv-ai-steps li .spinner-border { width: 13px; height: 13px; border-width: 2px; }

.jv-ai-steps li.is-done { color: var(--ink-mute); }
.jv-ai-steps li.is-done i { color: var(--ok); }

.jv-ai-steps li.is-active { color: var(--ink); font-weight: 600; }
.jv-ai-steps li.is-active .spinner-border { color: var(--accent); }

.jv-ai-steps li.is-todo { color: var(--ink-faint); }
.jv-ai-steps li.is-todo i { color: #C3CEDA; }
.jv-ai-elapsed { color: var(--ink-faint); font-size: 12px; margin: 0; font-variant-numeric: tabular-nums; }

.jv-ai-bad { color: var(--bad) !important; }

.jv-ai-detail {
	text-align: left;
	background: var(--chrome-soft);
	border: 1px solid var(--line);
	border-radius: var(--r);
	padding: 10px 12px;
	font-size: 11.5px;
	color: var(--ink-mute);
	max-height: 180px;
	overflow: auto;
	white-space: pre-wrap;
	margin: 0 auto 18px auto;
	max-width: 56ch;
}
.jv-ai-done-warn { text-align: left; margin: 0 auto 20px auto; max-width: 52ch; }

.jv-leads-banner {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding: 11px 14px;
	margin: 0 0 12px 0;
	background: var(--accent-wash);
	border: 1px solid var(--accent-line);
	border-radius: var(--r);
	color: var(--ink);
	font-size: 13px;
}

.jv-leads-banner .bi { color: var(--accent); font-size: 15px; line-height: 1; }
.jv-leads-banner strong { font-weight: 600; }
body.jv .jv-leads-banner a { margin-left: auto; color: var(--accent); font-weight: 500; }
body.jv .jv-leads-banner a:hover { text-decoration: underline; }

.jv-save-error {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 11px 14px;
	margin: 0 0 12px 0;
	background: #FDECEA;
	border: 1px solid #F3C4BF;
	border-radius: var(--r);
	color: var(--bad);
	font-size: 13px;
}

.jv-save-error .bi { font-size: 15px; line-height: 1.35; }

.jv-map-open,
.jv-cu-open {
	margin-left: 14px;
	padding: 6px 14px;
	background: var(--accent-wash);
	border: 1px solid var(--accent-line);
	border-radius: 20px;
	color: var(--accent-dk);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	vertical-align: 1px;
}

.jv-map-open:hover,
.jv-cu-open:hover { border-color: var(--accent-lt); background: var(--chrome); color: var(--accent); }

.jv-map-open .bi,
.jv-cu-open .bi { margin-right: 6px; font-size: 14px; vertical-align: -1px; }

.jv-cu-open { display: inline-block; text-decoration: none; }

.jv-dash-tools { margin: 0 0 12px 2px; }
.jv-dash-tools > :first-child { margin-left: 0; }

.jv-map-loc { width: auto; max-width: 240px; margin-left: auto; font-size: 13px; }

.jv-map-range { display: flex; gap: 2px; margin-left: auto; margin-right: 12px; }
.jv-map-loc ~ .jv-map-range { margin-left: 10px; }

.jv-map-range a,
.jv-map-range span {
	padding: 3px 10px;
	border-radius: 20px;
	color: var(--ink-mute);
	font-size: 12px;
	font-weight: 500;
}

body.jv .jv-map-range a { color: var(--ink-mute); }
body.jv .jv-map-range a:hover { background: var(--chrome-soft); color: var(--ink); }
body.jv .jv-map-range a.on { background: var(--accent-wash); color: var(--accent-dk); }

#jvMap { height: 62vh; min-height: 340px; }

.jv-map-status {
	padding: 40px 20px;
	text-align: center;
	color: var(--ink-mute);
	font-size: 13px;
}

.jv-map-note {
	margin-left: 10px;
	color: var(--ink-faint);
	font-size: 12px;
	font-weight: 400;
}

.jv-map-key { margin-right: auto; color: var(--ink-mute); font-size: 12px; }

.jv-map-key .dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	margin: 0 5px 0 14px;
	border-radius: 50%;
	vertical-align: 0;
}

.jv-map-key .dot:first-child { margin-left: 0; }
.jv-map-key .dot.zip { background: #1A73E8; }
.jv-map-key .dot.ip { background: #E8710A; }
.jv-map-key .dot.seo { background: rgba(124,179,66,.35); border: 1px solid #7CB342; }
.jv-map-key .dot.home { background: var(--deep); }

body.jv .modal-body { overflow: visible; }

@media (max-width: 767.98px) {

	body.jv #jvLeadMap .modal-header { flex-wrap: wrap; row-gap: 8px; }
	body.jv #jvLeadMap .modal-title { flex: 1 1 auto; min-width: 0; }
	body.jv #jvLeadMap .btn-close { order: 2; margin-left: auto; }

	.jv-map-loc { order: 3; flex: 0 0 100%; max-width: none; width: 100%; margin-left: 0; }

	.jv-map-loc ~ .jv-map-range,
	.jv-map-range { order: 4; margin-left: 0; margin-right: 0; }

	.jv-map-note { display: block; margin-left: 0; margin-top: 2px; }
}

.jv-cu-picker {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}

.jv-cu-picker .form-select { width: auto; min-width: 220px; }
.jv-cu-picker .jv-field-label { margin: 0; }
.jv-cu-emailto { color: var(--ink-mute); font-size: 13px; }
.jv-cu-sent { color: var(--ok); font-weight: 500; display: inline-flex; align-items: center; gap: 6px; }
.jv-cu-when { color: var(--ink-mute); font-size: 13px; margin: 0 0 12px 0; }

.jv-cu-overall {
	display: flex;
	align-items: center;
	gap: 18px;
	background: var(--card);
	border: 1px solid var(--line);
	border-left-width: 5px;
	border-radius: 10px;
	box-shadow: var(--shadow-sm);
	padding: 20px 22px;
	margin-bottom: 16px;
}

.jv-cu-overall h2 { margin: 0 0 6px 0; font-size: 19px; }
.jv-cu-overall p { margin: 0; color: var(--ink-mute); }

.jv-cu-letter {
	font-size: 40px;
	font-weight: 600;
	line-height: 1;
	flex: none;
	width: 62px;
	text-align: center;
}

.jv-cu-top {
	background: var(--accent-wash);
	border: 1px solid var(--accent-line);
	border-radius: 10px;
	padding: 16px 20px;
	margin-bottom: 16px;
}

body.jv .jv-cu-top h3 { font-size: 14px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-mute); margin: 0 0 8px 0; }
.jv-cu-top ol { margin: 0; padding-left: 20px; }
.jv-cu-top li { margin-bottom: 5px; }
.jv-cu-top li:last-child { margin-bottom: 0; }

.jv-cu-area {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 10px;
	box-shadow: var(--shadow-sm);
	padding: 18px 20px;
	margin-bottom: 14px;
}

.jv-cu-area-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
body.jv .jv-cu-area-head h3 { margin: 0; font-size: 16px; }
.jv-cu-area p { margin: 0 0 10px 0; }
.jv-cu-area ul { margin: 0; padding-left: 20px; }
.jv-cu-area li { margin-bottom: 4px; }

.jv-cu-pill {
	flex: none;
	min-width: 30px;
	text-align: center;
	font-weight: 600;
	border-radius: 6px;
	padding: 2px 7px;
	font-size: 14px;
}

.jv-qa-wrap { display: flex; flex-direction: column; align-items: stretch; gap: 6px; min-width: 0; }
.jv-qa { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.jv-qa-form { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; flex: 1 1 auto; }
.jv-qa-name { flex: 1 1 160px; min-width: 140px; }
.jv-qa-msg { color: var(--ink-mute); font-size: 12px; flex-basis: 100%; }
.jv-qa .bi { margin-right: 3px; }

.jv-la-doing {
	display: flex;
	align-items: baseline;
	gap: 8px;
	background: var(--accent-wash);
	border: 1px solid var(--accent-line);
	border-radius: var(--r);
	padding: 9px 13px;
	margin: 0 0 16px 0;
	color: var(--ink-mute);
}

.jv-la-doing .bi { color: var(--accent); }
body.jv .jv-la-name { margin: 0 0 4px 0; }
.jv-la-meta { color: var(--ink-mute); font-size: 13px; margin: 0 0 14px 0; }
.jv-la-contact { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px 0; }
.jv-la-block { margin-bottom: 18px; }

body.jv .jv-la-block h3 {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ink-mute);
	margin: 0 0 6px 0;
}

.jv-la-quote {
	background: var(--chrome-soft);
	border-radius: var(--r);
	padding: 12px 14px;
	color: var(--ink);
	font-size: 14px;
	line-height: 1.5;
	white-space: normal;
	overflow-wrap: anywhere;
}

.jv-la-notes { margin-top: 20px; margin-bottom: 0; }

.jv-la-done { text-align: center; padding: 34px 26px; }
.jv-la-done i.bi-check-circle-fill { font-size: 34px; color: var(--ok); display: block; margin-bottom: 10px; }
.jv-la-close { color: var(--ink-faint); font-size: 12px; margin: 16px 0 0 0; }

.jv-blast-locs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 6px 16px;
	border: 1px solid var(--line);
	border-radius: var(--r);
	padding: 12px 14px;
	max-height: 320px;
	overflow-y: auto;
}

.jv-blast-loc { display: flex; align-items: baseline; gap: 8px; cursor: pointer; min-width: 0; }
.jv-blast-loc span { font-weight: 500; }
.jv-blast-loc em { color: var(--ink-mute); font-size: 12px; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jv-blast-pick { margin: 0 0 8px 0; font-size: 13px; }
.jv-blast-pick a { margin-right: 12px; }
.jv-blast-file { margin: 0; }

.jv-blast-warn { display: block; margin: 14px 0 0 0; }
.jv-blast-file .bi { color: var(--ink-mute); margin-right: 4px; }
.jv-blast-fail { color: #C62828; font-weight: 500; }

.jv-ann-banner {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #FFF4E0;
	border: 1px solid #F0D9AE;
	border-radius: var(--r);
	padding: 9px 13px;
	margin-bottom: 14px;
	color: var(--ink-mute);
}

.jv-ann-banner i.bi-megaphone-fill { color: var(--warn); flex: none; }
.jv-ann-banner strong { color: var(--ink); font-weight: 600; }
.jv-ann-banner span { min-width: 0; }
.jv-ann-more { color: var(--ink-mute); white-space: nowrap; }
body.jv .jv-ann-banner a { margin-left: auto; font-weight: 500; white-space: nowrap; }

.jv-ann-x {
	flex: none;
	border: 0;
	background: none;
	color: var(--ink-mute);
	font-size: 20px;
	line-height: 1;
	padding: 0 2px;
	cursor: pointer;
}

.jv-ann-x:hover { color: var(--ink); }

.jv-ann-item {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 10px;
	box-shadow: var(--shadow-sm);
	padding: 20px 22px;
	margin-bottom: 14px;
}

.jv-ann-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
body.jv .jv-ann-head h2 { margin: 0; font-size: 18px; }
.jv-ann-date { color: var(--ink-mute); font-size: 13px; margin-left: auto; white-space: nowrap; }
.jv-ann-summary { color: var(--ink-mute); margin: 0 0 10px 0; }
.jv-ann-body > :first-child { margin-top: 0; }
.jv-ann-body > :last-child { margin-bottom: 0; }
.jv-ann-body img { max-width: 100%; height: auto; }
.jv-ann-old { opacity: .75; }

.jv-ann-new, .jv-ann-expired {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	border-radius: 20px;
	padding: 2px 9px;
}

.jv-ann-new { background: var(--accent-wash); color: var(--accent-dk); }
.jv-ann-expired { background: var(--chrome-soft); color: var(--ink-mute); }

.jv-cu-intro { color: var(--ink-mute); margin: 0 0 18px 0; }

.jv-cu-sentcard { text-align: center; padding: 34px 26px; }
.jv-cu-sentcard i.bi-check-circle-fill { font-size: 34px; color: var(--ok); display: block; margin-bottom: 10px; }

.jv-cu-fixes { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }

body.jv .jv-cu-fixes h4 {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ink-mute);
	margin: 0 0 8px 0;
}

.jv-cu-fixes ul { list-style: none; margin: 0; padding: 0; }
.jv-cu-fixes li { display: flex; gap: 9px; padding: 5px 0; align-items: baseline; }
.jv-cu-fixes li i { color: var(--ink-mute); font-size: 13px; flex: none; }
.jv-cu-fix-rec { display: block; font-weight: 500; }
.jv-cu-fix-rec a { text-decoration: none; }
.jv-cu-fix-rec a:hover { text-decoration: underline; }
.jv-cu-fix-what { display: block; color: var(--ink-mute); font-size: 13px; }
.jv-cu-fix-more { color: var(--ink-mute); font-size: 12px; margin: 8px 0 0 0; }
.jv-cu-fixes li.jv-cu-fix-done i { color: var(--ok); }
.jv-cu-fix-done .jv-cu-fix-rec, .jv-cu-fix-done .jv-cu-fix-rec a { color: var(--ink-mute); text-decoration: line-through; font-weight: 400; }
.jv-cu-fix-done .jv-cu-fix-what { color: var(--ok); font-weight: 600; }
.jv-cu-fix-fill { display: inline-block; margin-top: 3px; font-size: 12px; font-weight: 600; text-decoration: none; }
.jv-cu-fix-fill:hover { text-decoration: underline; }
.jv-cu-fix-fill .bi { vertical-align: -1px; margin-right: 3px; }
.jv-cu-help-link { margin: 10px 0 0 0; font-size: 13px; }
.jv-cu-help-link .bi { vertical-align: -1px; margin-right: 3px; }

.jv-cu-help {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 10px;
	box-shadow: var(--shadow-sm);
	padding: 20px 22px;
	margin-top: 14px;
}

.jv-cu-help > :first-child { margin-top: 0; }
.jv-cu-help > :last-child { margin-bottom: 0; }
.jv-cu-help img { max-width: 100%; height: auto; }
.jv-cu-help ul, .jv-cu-help ol { padding-left: 20px; }

.jv-cu-why { color: var(--ink-mute); font-size: 13px; margin: 10px 0 0 0; }
.jv-cu-why strong { color: var(--ink); }

.jv-cu-offer {
	display: flex;
	gap: 16px;
	background: var(--accent-dk);
	border-radius: 10px;
	padding: 22px 24px;
	color: #FFFFFF;
	box-shadow: var(--shadow-sm);
}

.jv-cu-offer i.bi-stars { font-size: 22px; color: #FFFFFF; opacity: .85; flex: none; line-height: 1.3; }

body.jv .jv-cu-offer h3 {
	margin: 0 0 6px 0;
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: #FFFFFF;
	opacity: .9;
}

.jv-cu-offer p {
	margin: 0 0 16px 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.45;
	color: #FFFFFF;
}

body.jv .jv-cu-offer .btn-primary {
	background: #FFFFFF;
	border-color: #FFFFFF;
	color: var(--accent-dk);
	font-weight: 600;
}

body.jv .jv-cu-offer .btn-primary:hover { background: var(--chrome-soft); border-color: var(--chrome-soft); color: var(--accent-dk); }

.jv-cu-ga { color: #2E7D32; }
.jv-cu-gb { color: #558B2F; }
.jv-cu-gc { color: #EF6C00; }
.jv-cu-gd { color: #E65100; }
.jv-cu-gf { color: #C62828; }
.jv-cu-gna { color: var(--ink-mute); }

.jv-cu-overall.jv-cu-ga { border-left-color: #2E7D32; }
.jv-cu-overall.jv-cu-gb { border-left-color: #558B2F; }
.jv-cu-overall.jv-cu-gc { border-left-color: #EF6C00; }
.jv-cu-overall.jv-cu-gd { border-left-color: #E65100; }
.jv-cu-overall.jv-cu-gf { border-left-color: #C62828; }
.jv-cu-overall.jv-cu-gna { border-left-color: var(--line); }

.jv-cu-pill.jv-cu-ga { background: rgba(46,125,50,.10); }
.jv-cu-pill.jv-cu-gb { background: rgba(85,139,47,.10); }
.jv-cu-pill.jv-cu-gc { background: rgba(239,108,0,.10); }
.jv-cu-pill.jv-cu-gd { background: rgba(230,81,0,.10); }
.jv-cu-pill.jv-cu-gf { background: rgba(198,40,40,.10); }
.jv-cu-pill.jv-cu-gna { background: var(--chrome-soft); }

@media (max-width: 575.98px) {
	.jv-cu-overall { gap: 12px; padding: 16px; }
	.jv-cu-letter { font-size: 32px; width: 44px; }
	.jv-cu-picker .form-select { width: 100%; }
}

body.jv-pg-on { overflow: hidden; }

.jv-pg[hidden] { display: none !important; }
.jv-pg { position: fixed; inset: 0; z-index: 1080; background: #000; display: flex; align-items: center; justify-content: center; }
.jv-pg-stage { position: relative; width: min(100vw, calc(100vh * var(--jvpg-arn, 1.3333))); width: min(100dvw, calc(100dvh * var(--jvpg-arn, 1.3333))); aspect-ratio: var(--jvpg-ar, 4 / 3); background: #000; overflow: hidden; }
.jv-pg-stage video, .jv-pg-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; transform-origin: 50% 50%; }
.jv-pg-stage video[hidden], .jv-pg-stage img[hidden] { display: none !important; }
.jv-pg-ghost { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.jv-pg-ghost path, .jv-pg-ghost rect, .jv-pg-ghost line, .jv-pg-ghost polyline { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.jv-pg-ghost .lo { stroke: #000; stroke-width: 9; opacity: .55; }
.jv-pg-ghost .hi { stroke: #fff; stroke-width: 3.5; }
.jv-pg-frame { stroke: #fff; stroke-width: 2; fill: none; opacity: .5; stroke-dasharray: 10 8; }
.jv-pg-horizon { stroke: #fff; stroke-width: 1.5; opacity: .35; }
.jv-pg-head { position: absolute; left: 0; right: 0; top: 0; padding: 8px 12px; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.9); pointer-events: none; }
.jv-pg-res { position: absolute; right: 0; bottom: 0; padding: 6px 10px; color: #fff; font-size: 11px; opacity: .75; text-shadow: 0 1px 3px rgba(0,0,0,.9); pointer-events: none; }
.jv-pg-step { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; opacity: .8; }
.jv-pg-name { display: block; font-size: 16px; font-weight: 700; }
.jv-pg-hint { display: block; font-size: 12px; opacity: .85; }
.jv-pg-msg, .jv-pg-rotate, .jv-pg-pick, .jv-pg-done { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; padding: 20px; color: #fff; background: rgba(8,11,15,.86); }
.jv-pg-msg[hidden], .jv-pg-rotate[hidden], .jv-pg-pick[hidden], .jv-pg-done[hidden] { display: none !important; }
.jv-pg-rotate i { font-style: normal; font-size: 40px; }
.jv-pg-rotate b, .jv-pg-pick b, .jv-pg-done b { font-size: 19px; }
.jv-pg-rotate span, .jv-pg-pick span, .jv-pg-done span { font-size: 13px; opacity: .75; max-width: 420px; }
.jv-pg-pick select { background: #2a323c; color: #fff; border: 1px solid #3a444f; border-radius: 8px; padding: 11px 10px; font-size: 15px; max-width: 320px; width: 100%; }
.jv-pg-controls { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1090; padding: 26px 12px 12px; padding-bottom: calc(12px + env(safe-area-inset-bottom)); background: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,.8) 45%); }
.jv-pg-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
.jv-pg-bar:first-child { margin-top: 0; }
.jv-pg-btn { border: 0; border-radius: 8px; padding: 13px 18px; font-size: 15px; font-weight: 600; background: #1f6feb; color: #fff; cursor: pointer; }
.jv-pg-btn.sec { background: #2a323c; }
.jv-pg-btn[hidden] { display: none !important; }
.jv-pg-btn:disabled { opacity: .4; }
.jv-pg-shoot { flex: 1 1 150px; padding: 17px 18px; font-size: 17px; }
.jv-pg-slid { display: flex; align-items: center; gap: 8px; flex: 1 1 165px; min-width: 150px; }
.jv-pg-slid label { font-size: 13px; color: #fff; opacity: .8; white-space: nowrap; }
.jv-pg-slid input { flex: 1 1 auto; min-width: 60px; }
.jv-pg-slid b { font-size: 12px; color: #fff; opacity: .8; min-width: 34px; text-align: right; }

@media (orientation: landscape) {
	.jv-pg { padding-right: 158px; }
	.jv-pg-stage { width: min(calc(100vw - 158px), calc(100vh * var(--jvpg-arn, 1.3333))); width: min(calc(100dvw - 158px), calc(100dvh * var(--jvpg-arn, 1.3333))); }
	.jv-pg-controls { left: auto; right: 0; top: 0; bottom: 0; width: 158px; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 12px; padding-right: calc(12px + env(safe-area-inset-right)); background: rgba(0,0,0,.72); overflow-y: auto; }
	.jv-pg-bar { flex-direction: column; align-items: stretch; margin: 0; gap: 10px; }
	.jv-pg-btn { padding: 12px 10px; font-size: 14px; }
	.jv-pg-shoot { flex: 0 0 auto; padding: 15px 10px; font-size: 15px; }
	.jv-pg-slid { flex: 0 0 auto; min-width: 0; flex-wrap: wrap; gap: 4px 8px; }
	.jv-pg-slid input { flex: 1 0 100%; order: 3; min-width: 0; }
	.jv-pg-slid label { flex: 1 1 auto; }
}

.tag-wrapper { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; width: 100%; min-height: 36px; padding: 5px 8px; background: var(--chrome); border: 1px solid var(--line); border-radius: 7px; cursor: text; }
.tag-wrapper:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(44,127,191,.12); outline: 0; }
.tag-badge { display: inline-flex; align-items: center; gap: 6px; background: var(--accent-wash); border: 1px solid var(--accent-line); color: var(--accent-dk); padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.6; }
.tag-close { cursor: pointer; opacity: .6; font-weight: 700; }
.tag-close:hover { opacity: 1; }
.tag-ghost-input { border: 0 !important; outline: 0 !important; padding: 0 !important; margin: 0 !important; flex: 1 1 120px; min-width: 100px; background: transparent !important; box-shadow: none !important; font-size: 13px; color: var(--ink); }
.tag-ghost-input::placeholder { color: var(--ink-faint); }

.jv-af { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.jv-af-btn { white-space: nowrap; }
.jv-af-msg { font-size: 12px; color: var(--ink-mute); min-width: 0; overflow-wrap: anywhere; }
.jv-af-msg.bad { color: #c62828; }
.jv-af-badge { display: inline-block; margin-left: 6px; padding: 1px 6px; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .04em; vertical-align: 1px; background: var(--accent-wash); color: var(--accent); border: 1px solid var(--accent-line); cursor: help; }
.jv-af-badge.is-spec { background: #FDF3E2; color: #A86412; border-color: #F0DCB8; }
.jv-af-primed { box-shadow: 0 0 0 3px var(--accent-wash); border-radius: 8px; }
.jv-stats-loc { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.jv-stats-loc label { font-size: 12px; font-weight: 600; color: var(--ink-mute); margin: 0; white-space: nowrap; }
.jv-stats-loc .form-select { width: auto; min-width: 190px; }
.jv-chart-empty { color: var(--ink-mute); margin: 12px 0 4px 0; }
body.jv .card[id] { scroll-margin-top: calc(var(--hd-h) + 16px); }
body.jv .jv-chart-title .bi { font-size: .95em; margin-right: 7px; vertical-align: -1px; }
.jv-brand-google { color: #4285F4; }
.jv-brand-fb { color: #1877F2; }
.jv-brand-ig { color: #C13584; }
.jv-brand-yt { color: #FF0000; }
.jv-brand-seo { color: var(--accent); }
.jv-notify-head { display: flex; align-items: center; gap: 9px; margin: 0 0 6px 0; }
.jv-notify-head > .bi { color: var(--accent); font-size: 18px; line-height: 1; }
.jv-notify-state { font-size: 15px; font-weight: 600; margin: 0; }
.jv-notify-note { max-width: 62ch; font-size: 12.5px; margin: 0 0 16px 0; }
.jv-notify-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.jv-notify-msg { margin: 14px 0 0 0; font-size: 13px; color: var(--ink-mute); min-height: 18px; }
.jv-notify-msg.bad { color: var(--bad); font-weight: 500; }
#jvNotifyPrefs .form-check { margin-bottom: 6px; }
.jv-install { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 16px 0; padding: 10px 14px; border: 1px solid var(--accent-line); border-radius: var(--r); background: var(--chrome); color: var(--ink); font-size: 13px; box-shadow: var(--shadow-sm); }
.jv-install.jv-hide { display: none; }
.jv-install > .bi { color: var(--accent); font-size: 17px; flex: none; }
.jv-install-txt { flex: 1 1 auto; min-width: 0; }
.jv-install-x { display: flex; align-items: center; justify-content: center; flex: none; width: 24px; height: 24px; border: 0; background: none; color: var(--ink-faint); font-size: 20px; line-height: 1; padding: 0; cursor: pointer; }
.jv-install-x:hover { color: var(--ink); }
.jv-notify > .bi { color: var(--accent); }
.jv-install-alt { display: none; }
@media (max-width: 991.98px) {
	.jv-install-alt { display: inline; }
	.jv-install-more { display: none; }
	.jv-install { padding: 9px 12px; font-size: 12px; }
	.jv-install .btn { margin-left: auto; padding: 2px 10px; font-size: 12px; }
}
@media (max-width: 575.98px) {
	.jv-notify-actions .btn { flex: 1 1 100%; }
	.jv-install { display: block; position: relative; padding: 8px 30px 8px 10px; font-size: 12px; line-height: 1.5; }
	.jv-install::after { content: ""; display: block; clear: both; }
	.jv-install > .bi { float: left; margin: 1px 8px 0 0; font-size: 15px; }
	.jv-install-txt { display: inline; }
	.jv-install .btn { float: right; margin-left: 8px; padding: 1px 10px; font-size: 12px; }
	.jv-install-x { position: absolute; top: 50%; right: 3px; transform: translateY(-50%); font-size: 18px; }
}
.jv-map-home { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--deep); color: #FFFFFF; border: 2px solid #FFFFFF; box-shadow: 0 1px 4px rgba(22,32,44,.45); font-size: 14px; }
.jv-seo-eng { display: block; font-size: 11.5px; color: var(--ink-faint); }
.jv-seo-note { color: var(--ink-mute); margin: 0 0 18px 0; }
.jv-seo-table td.jv-seo-num { font-weight: 600; white-space: nowrap; }
.jv-seo-table td.jv-seo-num.none { color: var(--ink-faint); font-weight: 400; }
@media (max-width: 575.98px) { .jv-stats-loc { width: 100%; } .jv-stats-loc .form-select { flex: 1; min-width: 0; } }
.jv-af-steer { display: inline-flex; gap: 5px; flex-wrap: wrap; }
.jv-af-steer[hidden] { display: none !important; }
.jv-af-chip { border: 1px solid var(--line); background: var(--chrome); color: var(--ink-mute); border-radius: 999px; padding: 2px 9px; font-size: 11px; font-weight: 600; cursor: pointer; }
.jv-af-chip:hover { border-color: var(--accent); color: var(--accent-dk); background: var(--accent-wash); }
.jv-af-chip:disabled { opacity: .45; cursor: default; }

.jv-af-panel { flex-basis: 100%; margin-top: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); box-shadow: var(--shadow-sm); overflow: hidden; text-align: left; }
.jv-af-panel-head { padding: 9px 14px; background: var(--chrome-soft); border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-mute); }
.jv-af-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px 14px; border-bottom: 1px solid var(--line-soft); cursor: pointer; }
.jv-af-item:hover { background: var(--chrome-soft); }
.jv-af-item input { margin-top: 3px; flex: 0 0 auto; }
.jv-af-item-body { min-width: 0; }
.jv-af-item b { display: block; font-size: 13px; color: var(--ink); }
.jv-af-item b em { font-style: normal; font-size: 11px; font-weight: 600; color: #a86412; }
.jv-af-item-val { display: block; font-size: 12px; color: var(--ink-mute); line-height: 1.5; overflow-wrap: anywhere; }
.jv-af-item.spec { background: rgba(232,163,61,.06); }
.jv-af-panel-foot { display: flex; gap: 8px; padding: 10px 14px; }

.jv-af-bulk { white-space: nowrap; margin-left: auto; align-self: center; }
.jv-af-bulkmsg { flex-basis: 100%; font-size: 13px; color: var(--ink-mute); margin-top: 6px; text-align: right; }
.jv-af-btn:disabled, .jv-af-bulk:disabled { opacity: .45; }

.jv-list-head { align-items: flex-start; justify-content: space-between; }
.jv-list-titles { min-width: 0; }
.jv-list-tools { display: flex; align-items: center; gap: 16px; margin-left: auto; flex-wrap: wrap; }

.jv-list-count {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .085em;
	text-transform: uppercase;
	color: var(--ink-faint);
	white-space: nowrap;
}

body.jv .jv-list-switch { margin: 0; padding-left: 2.1em; min-height: 0; }
body.jv .jv-list-switch .form-check-input { margin-left: -2.1em; cursor: pointer; }
body.jv .jv-list-switch .form-check-input:checked { background-color: var(--accent); border-color: var(--accent); }
body.jv .jv-list-switch .form-check-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(44,127,191,.12); }
body.jv .jv-list-switch .form-check-label { color: var(--ink-mute); cursor: pointer; white-space: nowrap; }

.jv-list-notice {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--accent-wash);
	border: 1px solid var(--accent-line);
	border-radius: var(--r);
	padding: 9px 13px;
	margin-bottom: 14px;
	color: var(--ink-mute);
}

.jv-list-notice i { color: var(--accent); }
.jv-list-notice strong { color: var(--ink); font-weight: 600; }
.jv-list-notice a { margin-left: auto; font-weight: 500; }

.jv-list-card {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 10px;
	box-shadow: var(--shadow-sm);
}

.jv-form-card {
	border: 1px solid var(--line);
	box-shadow: var(--shadow-sm);
}

body.jv .jv-list-table { margin: 0; border-color: var(--line-soft); }
body.jv .jv-list-table > thead th { background: var(--chrome-soft); white-space: nowrap; }
body.jv .jv-list-table > thead th:first-child { border-top-left-radius: 10px; }
body.jv .jv-list-table > thead th:last-child { border-top-right-radius: 10px; }

body.jv .jv-list-table thead th a {
	color: var(--ink-mute);
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

body.jv .jv-list-table thead th a:hover { color: var(--accent-dk); text-decoration: none; }
body.jv .jv-list-table thead th a i { font-size: 9px; opacity: .9; }
body.jv .jv-list-table thead th.on { background: var(--accent-wash); }
body.jv .jv-list-table thead th.on a { color: var(--accent-dk); }
.jv-list-hint { font-weight: 400; color: var(--ink-faint); font-size: 11px; }

body.jv .jv-list-table tbody th,
body.jv .jv-list-table tbody td { border-top: 1px solid var(--line-soft); vertical-align: middle; }
body.jv .jv-list-table tbody tr:first-child th,
body.jv .jv-list-table tbody tr:first-child td { border-top-color: var(--line); }
body.jv .jv-list-table > tbody { border-top: 0; }

body.jv .jv-list-table .jv-list-actcol { width: 1%; white-space: nowrap; padding-right: 4px; }
body.jv .jv-list-table .jv-list-imgcol { width: 1%; }

.jv-rowacts { display: inline-flex; align-items: center; gap: 2px; }

.jv-rowact {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px; height: 30px;
	border-radius: 7px;
	font-size: 15px;
	line-height: 1;
	color: var(--ink-faint);
}

body.jv .jv-list-table .jv-rowact:hover { background: var(--accent-wash); color: var(--accent-dk); text-decoration: none; }
body.jv .jv-list-table .jv-rowact-del:hover { background: #FDECEA; color: var(--bad); }

.jv-thumb {
	width: 64px;
	height: 44px;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid var(--line);
	background: var(--chrome-soft);
	display: block;
}

.jv-thumb-link { display: inline-block; }
.jv-thumb-link:hover .jv-thumb { border-color: var(--accent); }

.jv-thumb-none {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #C3CEDA;
	font-size: 16px;
}

.jv-thumb-wrap { position: relative; display: inline-block; }

.jv-thumb-badge {
	position: absolute;
	right: 3px; bottom: 3px;
	width: 17px; height: 17px;
	border-radius: 50%;
	background: rgba(22,32,44,.72);
	color: #fff;
	font-size: 11px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.jv-list-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 16px;
}

.jv-list-showing { color: var(--ink-mute); font-size: 12px; }
.jv-list-showing b { color: var(--ink); font-weight: 600; }

body.jv .jv-list-foot .pagination { font-size: 13px; }
body.jv .jv-list-foot .page-link { color: var(--accent); border-color: var(--line); padding: 5px 11px; }
body.jv .jv-list-foot .page-link:hover { background: var(--chrome-soft); }
body.jv .jv-list-foot .page-item.active .page-link { background: var(--accent); border-color: var(--accent); color: #fff; }

.jv-list-empty {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 10px;
	box-shadow: var(--shadow-sm);
	padding: 52px 24px;
	text-align: center;
}

.jv-list-empty > i { font-size: 30px; color: #C3CEDA; display: block; margin-bottom: 12px; }
.jv-list-empty-t { font-size: 15px; font-weight: 600; color: var(--ink); margin: 0 0 4px 0; }
.jv-list-empty-s { color: var(--ink-mute); margin: 0 0 18px 0; }

@media (min-width: 992px) {
	body.jv .jv-list-table > thead th {
		position: sticky;
		top: var(--hd-h);
		z-index: 2;
		box-shadow: inset 0 -1px 0 var(--line);
	}
}

@media (max-width: 991.98px) {
	.jv-list-tools { width: 100%; }

	body.jv .jv-main table.jv-list-table { display: block; overflow-x: visible; }

	.jv-list-card { background: none; border: 0; border-radius: 0; box-shadow: none; }
	body.jv .jv-list-table > thead { display: none; }
	body.jv .jv-list-table > tbody { display: block; }

	body.jv .jv-list-table > tbody > tr {
		display: block;
		background: var(--card);
		border: 1px solid var(--line);
		border-radius: 10px;
		box-shadow: var(--shadow-sm);
		padding: 12px 14px;
		margin-bottom: 10px;
	}

	body.jv .jv-list-table > tbody > tr > * { border: 0; padding: 0; }
	body.jv .jv-list-table > tbody > tr::after { content: ''; display: block; clear: both; }

	body.jv .jv-list-table > tbody > tr:hover > *,
	body.jv .jv-list-table > tbody > tr:active > * {
		--bs-table-bg-state: transparent;
		--bs-table-color-state: inherit;
	}

	body.jv .jv-list-table .jv-list-imgcol { float: left; width: auto; margin: 1px 12px 4px 0; }
	body.jv .jv-list-table .jv-list-actcol { float: right; width: auto; padding-left: 8px; }

	body.jv .jv-list-table td.jv-list-primary { display: inline; font-size: 15px; font-weight: 600; }
	body.jv .jv-list-table td.jv-list-lead { color: var(--ink-mute); font-weight: 500; }
	body.jv .jv-list-table td.jv-list-primary:empty { display: none; }
	body.jv .jv-list-table td.jv-list-primary + td.jv-list-primary { margin-left: 5px; }

	.jv-list-table .jv-thumb { width: 52px; height: 52px; }

	body.jv .jv-list-table > tbody > tr > td:not(.jv-list-imgcol):not(.jv-list-primary) {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 14px;
		border-top: 1px solid var(--line-soft);
		padding: 7px 0 0 0;
		margin-top: 7px;
		text-align: right;

		clear: both;
	}

	body.jv .jv-list-table > tbody > tr > td:not(.jv-list-imgcol):not(.jv-list-primary)::before {
		content: attr(data-label);
		flex: none;
		color: var(--ink-faint);
		font-size: 12px;
		font-weight: 500;
		text-align: left;
	}

	.jv-list-foot { margin-top: 4px; flex-direction: column; align-items: stretch; gap: 12px; }

	body.jv .jv-list-foot .pagination {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 6px;
	}

	body.jv .jv-list-foot .page-item { flex: 0 0 auto; }

	body.jv .jv-list-foot .page-item + .page-item .page-link { margin-left: 0; }

	body.jv .jv-list-foot .page-link {
		display: block;
		min-width: 42px;
		text-align: center;
		padding: 10px 8px;
		border-radius: 7px;
	}

	.jv-list-showing { text-align: center; }
}