@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-navbadge { margin-left: auto; background: var(--accent); color: #fff; border-radius: 999px; padding: 0 6px; font-size: 10px; font-weight: 700; line-height: 16px; min-width: 16px; text-align: center; }
body.sb-collapsed .jv-nav .jv-navbadge { position: absolute; top: 4px; right: 6px; margin: 0; padding: 0 4px; }
.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,.46), rgba(246,248,251,.54)), url('../images/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; }
.jv-sitebar-sel { flex: none; width: auto; max-width: 240px; font-size: 13px; order: 2; }
.jv-sitebar-home { flex: none; white-space: nowrap; font-size: 13px; order: 1; }
@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-sitebar-pick { flex-wrap: wrap; }
	.jv-sitebar-pick .jv-sitebar-txt { flex: 1 1 calc(100% - 26px); }
	.jv-sitebar-sel { max-width: none; width: auto; flex: 1 1 0; min-width: 0; font-size: 12px; }
	.jv-sitebar-home { font-size: 12px; padding: 4px 8px; }
	.jv-sitebar-homelbl { display: none; }
}
.jv-list-loc { flex: none; }
.jv-moved-note { display: flex; align-items: baseline; gap: 8px; 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-moved-note > .bi { color: var(--accent); flex: none; }
.jv-sc-h2 { font-size: 15px; font-weight: 600; margin: 0 0 12px 0; }
.jv-sc-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.jv-sc-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); font-size: 13px; }
.jv-sc-name { font-weight: 600; }
.jv-sc-state { font-size: 12px; color: var(--ink-mute); white-space: nowrap; }
.jv-sc-item .jv-sc-state { margin-left: auto; }
.jv-sc-go { margin: 0; flex: none; }
.jv-sc-go .btn { white-space: nowrap; }
.jv-inbox { display: flex; gap: 14px; align-items: flex-start; }
.jv-inbox-list { flex: 0 0 340px; max-width: 340px; display: flex; flex-direction: column; gap: 8px; }
.jv-inbox-thread { flex: 1 1 auto; min-width: 0; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); display: flex; flex-direction: column; }
.jv-inbox-row { display: grid; grid-template-columns: 20px 1fr auto; gap: 4px 8px; padding: 10px 12px; border: 1px solid var(--line); border-left: 4px solid transparent; border-radius: var(--r); background: var(--chrome); color: var(--ink); text-decoration: none; font-size: 13px; }
.jv-inbox-row:hover { border-left-color: var(--accent-line); }
.jv-inbox-row.on { border-left-color: var(--accent); background: var(--accent-wash); }
.jv-inbox-plat { color: var(--accent); font-size: 15px; }
.jv-inbox-who { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jv-inbox-badge { background: var(--accent); color: #fff; border-radius: 10px; padding: 0 7px; font-size: 11px; font-weight: 600; align-self: center; }
.jv-inbox-last { grid-column: 2 / 4; color: var(--ink-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jv-inbox-when { grid-column: 2 / 4; color: var(--ink-mute); font-size: 11px; }
.jv-inbox-win { grid-column: 2 / 4; font-size: 11px; font-weight: 600; color: #A66A00; }
.jv-inbox-win.open { color: #15803D; }
.jv-inbox-why { border: 0; background: none; padding: 0 0 0 4px; color: var(--ink-mute); font-size: 12px; line-height: 1; cursor: pointer; }
.jv-inbox-why:hover, .jv-inbox-why:focus { color: var(--accent); }
.jv-pw-eye { display: flex; align-items: center; }
.jv-inbox-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.jv-inbox-sub { color: var(--ink-mute); font-size: 12px; margin-left: 8px; }
.jv-inbox-msgs { padding: 14px; display: flex; flex-direction: column; gap: 12px; max-height: 60vh; overflow-y: auto; }
.jv-inbox-msg { max-width: 78%; align-self: flex-start; }
.jv-inbox-msg.out { align-self: flex-end; text-align: right; }
.jv-inbox-bubble { display: inline-block; padding: 9px 12px; border-radius: 14px; border: 1px solid var(--line); background: #fff; font-size: 13px; line-height: 1.45; text-align: left; overflow-wrap: anywhere; }
.jv-inbox-msg.out .jv-inbox-bubble { background: var(--accent-wash); border-color: var(--accent-line); }
/* A comment reply, sitting under the comment it answers. Indented from the side it is already
   on - ours are on the right, theirs on the left - so the tie to the parent reads either way. */
.jv-inbox-msg.sub { max-width: 68%; margin-left: 28px; }
.jv-inbox-msg.out.sub { margin-left: 0; margin-right: 28px; }
.jv-inbox-to { display: block; color: var(--ink-mute); font-size: 11px; font-weight: 600; margin-bottom: 3px; }
/* An image sent with a message, and the picker that attached it. */
.jv-inbox-pic { display: block; margin-bottom: 6px; }
.jv-inbox-pic img { display: block; max-width: 260px; max-height: 260px; width: auto; height: auto; border-radius: 9px; }
.jv-inbox-clip { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-mute); cursor: pointer; }
.jv-inbox-clip:hover { background: var(--chrome-soft); color: var(--ink); }
.jv-inbox-reply input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.jv-inbox-pick { display: none; align-items: center; gap: 8px; margin-top: 8px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font-size: 12px; color: var(--ink-mute); }
.jv-inbox-pick.on { display: flex; }
.jv-inbox-pick img { width: 40px; height: 40px; object-fit: cover; border-radius: 6px; }
.jv-inbox-pick.doc img, .jv-inbox-pick.pic i { display: none; }
.jv-inbox-pick i { font-size: 22px; color: var(--accent); }
.jv-inbox-doc { display: flex; width: fit-content; max-width: 100%; align-items: center; gap: 7px; margin-bottom: 6px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--accent); text-decoration: none; font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
.jv-inbox-doc:hover { background: var(--chrome-soft); text-decoration: none; }
.jv-inbox-pick span { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jv-inbox-att { display: block; color: var(--ink-mute); font-size: 12px; }
.jv-inbox-none { color: var(--ink-mute); font-style: italic; }
.jv-inbox-meta { color: var(--ink-mute); font-size: 11px; margin-top: 4px; }
.jv-inbox-rep { color: var(--accent); text-decoration: none; font-weight: 600; margin-left: 6px; }
.jv-inbox-did { color: var(--ink-mute); font-weight: 600; margin-left: 6px; }
/* A conditional card on a schema-driven form. display:contents makes the fields participate in the
   grid as though the wrapper were not there. Hidden until the script in edit.php decides
   otherwise, so nothing flashes into view on a slow load.

   THE MIRRORED RULES BELOW ARE NOT OPTIONAL. Every grid rule uses the direct child combinator -
   .jv-form-grid > * and friends - and display:contents does NOT make a grandchild match ">".
   Without these the fields keep their layout box but lose every column rule, and nine fields
   collapse into a single row. Mirrored rather than loosening the originals, so no existing form
   changes. */
.jv-form-when { display: none; }
.jv-form-when.on { display: contents; }
.jv-form-grid > .jv-form-when > * { grid-column: 1 / -1; }
.jv-form-grid > .jv-form-when > .jv-f-4 { grid-column: span 4; }
.jv-form-grid > .jv-form-when > .jv-f-6 { grid-column: span 6; }
.jv-form-grid > .jv-form-when > .jv-f-12 { grid-column: 1 / -1; }
.jv-card .jv-form-grid > .jv-form-when > .jv-f-4,
.jv-card .jv-form-grid > .jv-form-when > .jv-f-6 { grid-column: 1 / -1; }
body.jv .jv-form-grid > .jv-form-when > .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;
}
.jv-inbox-norate { color: var(--ink-mute); font-size: 11px; font-style: italic; white-space: nowrap; }
.jv-inbox-row .jv-inbox-norate { grid-column: 2; }
.jv-inbox-stars { color: #E8A317; font-size: 11px; letter-spacing: 1px; white-space: nowrap; }
.jv-inbox-row .jv-inbox-stars { grid-column: 2; }
.jv-inbox-headwho .jv-inbox-stars { font-size: 13px; }
/* A reaction rides on the bubble it belongs to, and the picker floats over the message on hover
   rather than taking a row of its own. */
.jv-inbox-msg { position: relative; }
.jv-inbox-bubble { position: relative; }
.jv-inbox-react { position: static; }
.jv-inbox-gotr { position: absolute; bottom: -11px; right: 8px; z-index: 2; border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 0 6px; font-size: 13px; line-height: 1.55; box-shadow: 0 1px 3px rgba(16, 40, 80, .16); white-space: nowrap; }
.jv-inbox-msg.out .jv-inbox-gotr { right: auto; left: 8px; }
/* NO GAP BETWEEN THE BUBBLE AND THE PICKER. It used to sit 4px clear, and that 4px was hover
   limbo: the mouse left the message on its way up and the picker vanished before it could be
   reached. The picker now touches the bubble and carries its own padding instead. */
.jv-inbox-picker { position: absolute; bottom: 100%; left: 0; right: auto; z-index: 3; display: flex; gap: 1px; padding: 3px 4px; border: 1px solid var(--line); border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(16, 40, 80, .16); opacity: 0; pointer-events: none; transition: opacity .12s; }
/* EACH SIDE ANCHORS TO ITS OWN EDGE, because the picker is about 200px wide and most bubbles are
   narrower than that. Anchored to the wrong edge it hangs off the side of the pane: right-anchored
   on an incoming "Got it!" it ran off the LEFT and lost the first emoji, and left-anchored on our
   own messages it ran 74px past the RIGHT and put a scrollbar under the conversation. Their
   messages sit on the left of the pane, ours on the right, so each grows inwards. */
.jv-inbox-msg.out .jv-inbox-picker { right: 0; left: auto; }
/* Hover only where a pointer actually hovers. A phone reports no hover, and the tapped state
   below is what opens it there. */
@media (hover: hover) {
	.jv-inbox-msg:hover .jv-inbox-picker { opacity: 1; pointer-events: auto; }
}
.jv-inbox-picker:focus-within, .jv-inbox-msg.pick .jv-inbox-picker { opacity: 1; pointer-events: auto; }
/* Dropped below the bubble when there is no room above it. The message pane scrolls, so anything
   sitting above the topmost visible bubble is clipped by the pane rather than merely overlapping
   it - the top row of emoji simply vanished. The class is set in social_inbox.php, which is the
   only place that can measure. */
.jv-inbox-picker.below { bottom: auto; top: 100%; }
.jv-inbox-addr { position: absolute; bottom: -9px; right: -26px; z-index: 2; width: 22px; height: 22px; padding: 0; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink-mute); font-size: 12px; line-height: 1; opacity: 0; transition: opacity .12s; }
.jv-inbox-msg.out .jv-inbox-addr { right: auto; left: -26px; }
.jv-inbox-addr:hover, .jv-inbox-msg.pick .jv-inbox-addr { color: var(--accent); border-color: var(--accent-line); }
@media (hover: hover) {
	.jv-inbox-msg:hover .jv-inbox-addr { opacity: 1; }
}
/* Always there on touch, where nothing reveals it. */
@media (hover: none) {
	.jv-inbox-addr { opacity: 1; }
}
.jv-inbox-msg.pick .jv-inbox-addr { opacity: 1; }
.jv-inbox-emoji { border: 0; background: none; padding: 1px 4px; font-size: 15px; line-height: 1.4; border-radius: 999px; }
.jv-inbox-emoji:hover { background: var(--chrome-soft); }
.jv-inbox-emoji.on { background: var(--accent-wash); }
/* A reaction is a round trip to Meta and takes a second or two. Without this the picker sits
   there looking untouched and the obvious thing to do is click it again. */
.jv-inbox-picker.busy { pointer-events: none; }
.jv-inbox-picker.busy .jv-inbox-emoji { opacity: .3; }
.jv-inbox-emoji.sending { opacity: 1 !important; background: var(--accent-wash); animation: jv-rx-pulse .7s ease-in-out infinite; }
@keyframes jv-rx-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.28); }
}
.jv-inbox-mod { display: flex; gap: 6px; margin-top: 3px; }
.jv-inbox-msg.out .jv-inbox-mod { justify-content: flex-end; }
.jv-inbox-modbtn { border: 1px solid var(--line); background: #fff; color: var(--ink-mute); border-radius: 6px; padding: 1px 7px; font-size: 11px; font-weight: 600; line-height: 1.7; }
.jv-inbox-modbtn:hover { background: var(--chrome-soft); color: var(--ink); }
.jv-inbox-modbtn.del:hover { background: #FDECEC; color: #B02A2A; border-color: #F3C9C9; }
.jv-inbox-msg.hid .jv-inbox-bubble { background: var(--chrome-soft); border-style: dashed; opacity: .8; }
.jv-inbox-hidtag { display: block; color: var(--ink-mute); font-size: 11px; font-weight: 600; margin-bottom: 3px; }
.jv-inbox-foot { padding: 10px 14px; border-top: 1px solid var(--line); color: var(--ink-mute); font-size: 12px; }
.jv-inbox-reply { display: flex; gap: 8px; align-items: flex-end; }
.jv-inbox-reply textarea { flex: 1 1 auto; min-width: 0; font-size: 13px; resize: vertical; }
.jv-inbox-reply .btn { flex: none; white-space: nowrap; }
.jv-inbox-shut { display: flex; align-items: center; gap: 8px; color: #A66A00; font-weight: 600; }
.jv-inbox-empty { padding: 24px; text-align: center; color: var(--ink-mute); font-size: 13px; }
.jv-inbox-tabs { display: flex; gap: 6px; margin: 0 0 12px 0; }
.jv-inbox-tab { padding: 7px 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); color: var(--ink); text-decoration: none; font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 6px; }
.jv-inbox-tab.on { border-color: var(--accent); background: var(--accent-wash); color: var(--accent); }
.jv-inbox-subtabs { margin-top: -6px; }
.jv-inbox-subtabs .jv-inbox-tab { padding: 5px 12px; font-size: 12px; font-weight: 500; }
.jv-inbox-row.unread .jv-inbox-who { font-weight: 700; }
.jv-inbox-subtabs { margin-top: -6px; }
.jv-inbox-subtabs .jv-inbox-tab { padding: 5px 12px; font-size: 12px; font-weight: 500; }
.jv-inbox-row.unread .jv-inbox-last { color: var(--ink); font-weight: 600; }
.jv-inbox-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--accent); align-self: center; }
.jv-inbox-headwho { display: flex; align-items: center; gap: 8px; min-width: 0; }
.jv-inbox-acts { display: flex; gap: 6px; margin: 0; flex: none; }
.jv-inbox-back { display: none; color: var(--accent); text-decoration: none; font-weight: 600; white-space: nowrap; }
@media (max-width: 767.98px) {
	.jv-inbox { flex-direction: column; }
	.jv-inbox-list { flex: 1 1 auto; max-width: none; width: 100%; }
	.jv-inbox-thread { width: 100%; }
	.jv-inbox-msg { max-width: 90%; }
	.jv-inbox-back { display: inline-flex; align-items: center; gap: 4px; }
	.jv-inbox.has-open .jv-inbox-list { display: none; }
	.jv-inbox:not(.has-open) .jv-inbox-thread { display: none; }
	.jv-inbox-msgs { max-height: none; }
	.jv-inbox-head { gap: 6px; }
	.jv-inbox-acts { width: 100%; }
	.jv-inbox-acts .btn { flex: 1 1 0; }
}
.jv-sc-ok { border-color: #C9E7D6; background: #E9F6EF; }
.jv-sc-ok .jv-sc-state { color: #15803D; font-weight: 600; }
.jv-sc-warn { border-color: #F2D9A8; background: #FDF6E7; }
.jv-sc-warn .jv-sc-state { color: #A66A00; font-weight: 600; }
.jv-sc-steps { margin: 0 0 14px 0; padding-left: 20px; font-size: 13px; }
.jv-sc-steps li { margin-bottom: 5px; }
.jv-sc-linkbox { margin: 14px 0; padding: 14px; border: 1px solid var(--accent-line); border-radius: var(--r); background: var(--accent-wash); }
.jv-sc-linkbox input { font-family: monospace; font-size: 12px; }
.jv-sc-acts { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.jv-sp-off { opacity: .45; }
.jv-sp-off .form-check-label { text-decoration: line-through; }
.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-chart-note { display: inline-block; margin-top: 2px; font-size: 11px; opacity: .8; }

.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: 1199.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 .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-cap-count { display: block; }
.jv-cap-over { color: #B42318; font-weight: 600; }

.jv-check-group { display: flex; flex-wrap: wrap; gap: 4px 14px; padding-top: 5px; }

@media (max-width: 575.98px) {
	.jv-check-group { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; }
	.jv-check-group .form-check-inline { margin-right: 0; }
}

@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: 991.98px) {

	body.jv #jvLeadMap .modal-dialog { max-width: none; width: calc(100% - 1.5rem); margin: 0.75rem auto; }
	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-brand-tt { color: #000000; }
.jv-brand-li { color: #0A66C2; }
.jv-brand-x { color: #000000; }
.jv-brand-th { color: #000000; }
.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-map-home.jv-map-home-sm { width: 18px; height: 18px; border-width: 1px; font-size: 10px; }
.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.table,
	body.jv .jv-main .table-responsive-lg {
		display: block;
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	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; }
}

.jv-pb-pick { padding: 18px 20px; }
.jv-pb-lead { color: var(--ink-mute); font-size: 13px; margin: 0 0 14px 0; }
.jv-pb-pagelist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.jv-pb-pagelist a { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); text-decoration: none; color: var(--ink); }
.jv-pb-pagelist a:hover { border-color: var(--accent); }
.jv-pb-pagename { font-weight: 600; font-size: 14px; }
.jv-pb-count { font-size: 11px; color: var(--accent); white-space: nowrap; }
.jv-pb-count.jv-pb-none { color: var(--ink-faint); }

.jv-pb-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 14px 0; }
.jv-pb-back { font-size: 12px; text-decoration: none; margin-right: 12px; }
.jv-pb-title { font-weight: 600; }
.jv-pb-baractions { display: flex; gap: 8px; }

.jv-pb-wrap { display: grid; grid-template-columns: 250px 1fr; gap: 14px; align-items: start; }
.jv-pb-h2 { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-faint); margin: 0 0 10px 0; }
.jv-pb-cat { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-faint); margin: 14px 0 6px 0; }

.jv-pb-palette { padding: 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); position: sticky; top: calc(var(--hd-h) + 12px); max-height: calc(100vh - var(--hd-h) - 30px); overflow-y: auto; }
.jv-pb-pal { display: block; padding: 9px 11px; margin-bottom: 6px; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); cursor: grab; }
.jv-pb-pal:hover { border-color: var(--accent); }
.jv-pb-palimg { display: block; width: 100%; border-radius: 3px; margin-bottom: 6px; }
.jv-pb-palname { display: block; font-size: 13px; font-weight: 600; }
.jv-pb-paldesc { display: block; font-size: 11px; color: var(--ink-mute); margin-top: 2px; }

.jv-pb-canvas { padding: 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); min-height: 320px; }
.jv-pb-block.jv-pb-content { border-style: dashed; background: var(--chrome-soft); }
.jv-pb-block.jv-pb-content .jv-pb-bname { color: var(--ink-mute); }
.jv-pb-editlink { color: var(--ink-faint); padding: 3px 5px; display: inline-flex; }
.jv-pb-editlink:hover { color: var(--accent); }
.jv-pb-stack { min-height: 60px; }
.jv-pb-stack.jv-pb-drop { outline: 2px dashed var(--accent); outline-offset: 3px; border-radius: var(--r); }
.jv-pb-block { display: flex; align-items: center; gap: 10px; padding: 11px 13px; margin-bottom: 8px; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); }
.jv-pb-block.jv-pb-sel { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-line); }
.jv-pb-block.jv-pb-off { opacity: .5; }
.jv-pb-grip { color: var(--ink-faint); cursor: grab; flex: none; }
.jv-pb-bname { font-size: 13px; font-weight: 600; flex: none; }
.jv-pb-bdesc { font-size: 11px; color: var(--ink-mute); flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jv-pb-bacts { display: flex; gap: 4px; flex: none; }
.jv-pb-bacts button { border: 0; background: none; color: var(--ink-faint); padding: 3px 5px; cursor: pointer; font-size: 14px; }
.jv-pb-bacts button:hover { color: var(--accent); }
.jv-pb-ph { height: 44px; margin-bottom: 8px; border: 1px dashed var(--accent); border-radius: var(--r); background: var(--accent-line); }
.jv-pb-hint { font-size: 11px; color: var(--ink-faint); margin: 10px 0 0 0; }

.jv-pb-panel { position: fixed; top: 0; right: 0; width: min(420px, 92vw); height: 100vh; background: var(--chrome); border-left: 1px solid var(--line); box-shadow: -4px 0 18px rgba(0,0,0,.08); transform: translateX(100%); transition: transform .18s ease; z-index: 1080; overflow-y: auto; }
.jv-pb-panel.jv-pb-panelopen { transform: translateX(0); }
.jv-pb-panelin { padding: 16px 18px 90px 18px; }
.jv-pb-panelhead { display: flex; align-items: center; justify-content: space-between; }
.jv-pb-panelclose { border: 0; background: none; color: var(--ink-faint); font-size: 15px; cursor: pointer; padding: 2px 4px; }
.jv-pb-panelclose:hover { color: var(--ink); }
.jv-pb-loading { color: var(--ink-faint); font-size: 13px; }
.jv-pb-field { margin-bottom: 12px; }
.jv-pb-label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 4px; }
.jv-pb-req { color: var(--bad); margin-left: 2px; }
.jv-pb-repeat { margin-top: 16px; padding-top: 10px; border-top: 1px solid var(--line); }
.jv-pb-item { border: 1px solid var(--line); border-radius: var(--r); padding: 11px 12px; margin-bottom: 10px; background: var(--surface); }
.jv-pb-itemhead { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-faint); }
.jv-pb-itemdel { border: 0; background: none; color: var(--ink-faint); cursor: pointer; padding: 0 2px; }
.jv-pb-itemdel:hover { color: var(--bad); }
.jv-pb-tpl { display: none; }
.jv-pb-panelfoot { position: sticky; bottom: 0; display: flex; align-items: center; gap: 10px; padding: 12px 0 0 0; margin-top: 14px; background: var(--chrome); border-top: 1px solid var(--line); }
.jv-pb-saved { font-size: 12px; color: var(--ok); }

.jv-pb-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 1090; padding: 24px; }
.jv-pb-modal.jv-pb-modalopen { display: block; }
.jv-pb-modalin { display: flex; flex-direction: column; width: 100%; height: 100%; background: var(--chrome); border-radius: var(--r); overflow: hidden; }
.jv-pb-modalbar { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--line); font-weight: 600; font-size: 13px; }
.jv-pb-frame { flex: 1 1 auto; width: 100%; border: 0; background: #fff; }
.jv-pb-previewwrap { flex: 1 1 auto; overflow: auto; padding: 8px 10px 20px 10px; }
.jv-pb-devtabs { flex-wrap: nowrap; }
.jv-pb-devtabs .nav-link { padding: 2px 8px; font-size: 12px; white-space: nowrap; }
.jv-pb-devcontent { display: flex; justify-content: center; padding-top: 10px; }
.jv-pb-dev { box-sizing: content-box; border: 0; background-position: center top; background-size: 100% auto; background-repeat: no-repeat; }
.jv-pb-devlg { width: 1222px; height: 725px; scale: .75; margin: -100px -190px; background-image: url('../images/laptop_bg.jpg'); padding: 92px 144px 99px 142px; }
.jv-pb-devmd { width: 1020px; height: 625px; scale: .75; margin: -85px -135px; background-image: url('../images/tablet_bg.jpg'); padding: 108px 43px 65px 48px; }
.jv-pb-devsm { width: 398px; height: 670px; scale: .75; margin: -95px -45px; background-image: url('../images/phone_bg.jpg'); background-position: center; padding: 85px 32px 165px 34px; }

@media (max-width: 991.98px) {
	.jv-pb-wrap { grid-template-columns: 1fr; }
	.jv-pb-palette { position: static; max-height: none; }
}


.jv-pb-slots { display: flex; gap: 8px; flex-wrap: wrap; margin: -4px 0 8px 26px; }
.jv-pb-slot { flex: 1 1 180px; min-width: 160px; border: 1px solid var(--line-soft); border-radius: var(--r); padding: 7px 8px 8px 8px; background: var(--chrome-soft); }
.jv-pb-slotname { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-faint); margin-bottom: 5px; }
.jv-pb-slotstack { min-height: 42px; border: 1px dashed var(--line); border-radius: var(--r); padding: 5px; }
.jv-pb-slotstack .jv-pb-block { margin-bottom: 5px; padding: 8px 10px; }
.jv-pb-slotstack .jv-pb-block:last-child { margin-bottom: 0; }
.jv-pb-img { border: 1px solid var(--line); border-radius: var(--r); padding: 8px; background: var(--surface); }
.jv-pb-imgthumb { display: block; width: 100%; max-height: 130px; object-fit: cover; border-radius: 4px; margin-bottom: 7px; }
.jv-pb-imgacts { display: flex; gap: 6px; }
.jv-pb-imgname { display: block; font-size: 10px; color: var(--ink-faint); margin-top: 5px; word-break: break-all; }
.jv-pb-img .jv-hide { display: none; }

@media (max-width: 575.98px) {
	.jv-pb-canvas, .jv-pb-palette { padding: 10px; }
	.jv-pb-bar { gap: 8px; }
	.jv-pb-bdesc { display: none; }
	.jv-pb-block { flex-wrap: wrap; gap: 8px; padding: 10px; }
	.jv-pb-bname { flex: 1 1 auto; min-width: 0; }
	.jv-pb-bacts { margin-left: auto; }
	.jv-pb-block.jv-pb-content .jv-pb-bacts { flex: 1 1 100%; margin-left: 0; }
	.jv-pb-block.jv-pb-content .jv-pb-bacts .btn { width: 100%; }
	.jv-pb-slots { margin-left: 0; gap: 6px; }
	.jv-pb-slot { flex: 1 1 100%; min-width: 0; }
	.jv-pb-panel { width: 100%; }
	.jv-pb-modal { padding: 0; }
	.jv-pb-devcontent { justify-content: flex-start; }
	.jv-pb-dev { scale: .34; }
	.jv-pb-devlg { margin: -240px -404px; }
	.jv-pb-devmd { margin: -206px -337px; }
	.jv-pb-devsm { margin: -221px -131px; }
}

.jv-tabs { margin-top: 4px; }
.jv-tabs > input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.jv-tabs > label { display: inline-block; padding: 6px 14px; margin: 0 4px 0 0; border: 1px solid var(--line); border-bottom: 0; border-radius: var(--r) var(--r) 0 0; background: var(--chrome-soft); color: var(--ink-mute); font-size: 12px; font-weight: 600; cursor: pointer; }
.jv-tabs > label:hover { color: var(--ink); }
.jv-tabs > input:checked + label { background: var(--chrome); color: var(--accent); border-color: var(--accent-line); }
.jv-tabs > input:focus-visible + label { outline: 2px solid var(--accent); outline-offset: 2px; }
.jv-tabs > .jv-tabpane { display: none; border-top: 1px solid var(--line); padding-top: 10px; }
.jv-tabs > input:nth-of-type(1):checked ~ .jv-tabpane:nth-of-type(1) { display: block; }
.jv-tabs > input:nth-of-type(2):checked ~ .jv-tabpane:nth-of-type(2) { display: block; }
.jv-tabs-n { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 9px; background: var(--accent-wash); color: var(--accent); font-size: 10px; }
.jv-tabs-page { margin-bottom: 26px; }

.jv-table-wrap { overflow-x: auto; background: var(--chrome); border: 1px solid var(--line); border-radius: var(--r); }
.jv-terms { width: 100%; border-collapse: collapse; font-size: 13px; }
.jv-terms thead th { position: sticky; top: 0; z-index: 1; text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-faint); font-weight: 600; padding: 8px 10px; background: var(--chrome-soft); border-bottom: 1px solid var(--line); white-space: nowrap; }
.jv-terms td { padding: 8px 10px; border-top: 1px solid var(--line-soft); }
.jv-terms tbody tr:first-child td { border-top: 0; }
.jv-terms tbody tr:nth-child(even) { background: var(--chrome-soft); }
.jv-terms tbody tr:hover { background: var(--accent-wash); }
.jv-terms .jv-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.jv-terms-t { max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jv-terms-r { width: 1%; text-align: right; color: var(--ink-faint); font-size: 11px; white-space: nowrap; }
.jv-terms-range { margin: 0 0 14px 0; }

.jv-terms th.jv-sort { cursor: pointer; user-select: none; }
.jv-terms th.jv-sort:hover { color: var(--accent); }
.jv-terms th.jv-sort:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.jv-terms th.jv-sort::after { content: "\2195"; margin-left: 5px; opacity: .35; font-size: 10px; }
.jv-terms th.jv-sort-asc::after { content: "\2191"; opacity: 1; }
.jv-terms th.jv-sort-desc::after { content: "\2193"; opacity: 1; }
.jv-terms th.jv-sort-on { color: var(--accent); }

@media (max-width: 575.98px) {
	.jv-tabs > label { padding: 6px 10px; }
	.jv-table-wrap { overflow-x: visible; border: 0; }
	.jv-terms thead th { position: static; }
	.jv-terms thead th.jv-terms-r, .jv-terms thead th:nth-child(2) { display: none; }
	.jv-terms thead tr { display: flex; flex-wrap: wrap; gap: 4px; border: 0; }
	.jv-terms thead th { flex: 1 1 44%; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--r); text-align: center; }
	.jv-terms tbody tr { display: block; margin-bottom: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); }
	.jv-terms tbody tr:nth-child(even) { background: var(--chrome); }
	.jv-terms tbody tr:hover { background: var(--chrome); }
	.jv-terms td { display: block; padding: 0; border: 0; }
	.jv-terms tbody td.jv-terms-r { display: inline-block; margin-right: 6px; }
	.jv-terms-t { display: inline-block; max-width: 100%; white-space: normal; font-weight: 600; }
	.jv-terms tbody td.jv-num { display: inline-block; width: 48%; margin-top: 6px; text-align: left; color: var(--ink-mute); }
	.jv-terms tbody td.jv-num::before { content: attr(data-label) ": "; color: var(--ink-faint); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
}

.jv-cu-ps { margin-top: 24px; padding: 18px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); }
.jv-cu-ps h3 { margin: 0; font-size: 15px; display: flex; align-items: center; gap: 8px; }
.jv-cu-ps-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.jv-cu-ps-tabs { display: inline-flex; padding: 3px; gap: 3px; background: var(--wash, rgba(0,0,0,.05)); border-radius: 999px; }
.jv-cu-ps-tabs button { border: 0; background: none; border-radius: 999px; padding: 5px 14px; font-size: 12px; font-weight: 600; color: var(--ink-mute); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.jv-cu-ps-tabs button:hover { color: var(--ink); }
.jv-cu-ps-tabs button.on { background: var(--chrome); color: var(--accent); box-shadow: 0 1px 2px rgba(0,0,0,.12); }
.jv-cu-ps-pane { display: none; }
.jv-cu-ps-pane.on { display: block; }
.jv-cu-ps h4 { margin: 14px 0 6px; font-size: 13px; }
.jv-cu-ps-sub { margin: 0 0 14px; font-size: 12px; color: var(--ink-mute); }
.jv-cu-ps-err { margin: 0; font-size: 13px; color: #A66A00; }
.jv-cu-ps-scores { display: flex; flex-wrap: wrap; gap: 10px; }
.jv-cu-ps-score { flex: 1 1 110px; text-align: center; padding: 10px; border-radius: var(--r); border: 1px solid var(--line); }
.jv-cu-ps-score span { display: block; font-size: 26px; font-weight: 700; line-height: 1.1; }
.jv-cu-ps-score em { font-style: normal; font-size: 11px; color: var(--ink-mute); }
.jv-cu-ps-score.good span { color: #15803D; }
.jv-cu-ps-score.ok span { color: #A66A00; }
.jv-cu-ps-score.bad span { color: #B91C1C; }
.jv-cu-ps-metrics { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.jv-cu-ps-metrics li { font-size: 12px; }
.jv-cu-ps-mv { font-weight: 700; margin-right: 5px; }
.jv-cu-ps-mv.good { color: #15803D; }
.jv-cu-ps-mv.ok { color: #A66A00; }
.jv-cu-ps-mv.bad { color: #B91C1C; }
.jv-cu-ps-mt { color: var(--ink-mute); }
.jv-cu-ps-cols { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 6px; }
.jv-cu-ps-shot { flex: 0 0 240px; max-height: 560px; overflow-y: auto; border: 1px solid var(--line); border-radius: var(--r); }
.jv-cu-ps-shot img { display: block; width: 100%; }
.jv-cu-ps-fix { flex: 1 1 320px; min-width: 0; }
.jv-cu-ps-fix ul { list-style: none; margin: 0; padding: 0; }
.jv-cu-ps-fix li { font-size: 12px; padding: 3px 0; border-bottom: 1px solid var(--line); }
.jv-cu-ps-fix li:last-child { border-bottom: 0; }
.jv-cu-ps-fix li em { font-style: normal; color: var(--ink-mute); }
.jv-cu-ps-fs { display: inline-block; min-width: 26px; margin-right: 8px; font-weight: 700; color: #B91C1C; }
.jv-cu-ps-none { margin: 0; font-size: 12px; color: var(--ink-mute); }
.jv-cu-ps-shotwrap { flex: 0 0 240px; }
.jv-cu-ps-shotwrap span { display: block; font-size: 10px; color: var(--ink-mute); text-align: center; margin-top: 4px; }

.jv-ps-err { padding: 12px 14px; border-radius: var(--r); background: #FEF3C7; color: #92400E; font-size: 13px; margin-bottom: 16px; }
.jv-ps-head { display: flex; gap: 16px; align-items: flex-start; padding: 16px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); }
.jv-ps-thumb { flex: 0 0 110px; }
.jv-ps-thumb img { width: 100%; border-radius: var(--r); display: block; }
.jv-ps-thumbvid { height: 82px; display: flex; align-items: center; justify-content: center; background: var(--accent-wash); border-radius: var(--r); color: var(--accent); font-size: 28px; }
.jv-ps-headtext { min-width: 0; }
.jv-ps-headtext h2 { margin: 0 0 4px; font-size: 17px; }
.jv-ps-when { margin: 0 0 8px; font-size: 12px; color: var(--ink-mute); }
.jv-ps-headtext h2 { overflow-wrap: anywhere; }
.jv-ps-syncing { margin: 16px 0 0; font-size: 12px; color: #A66A00; }
body.jv .jv-ps-h { margin: 26px 0 12px; font-size: 14px; font-weight: 700; }
body.jv .jv-ps-h:first-of-type { margin-top: 22px; }
.jv-ps-tiles { display: flex; flex-wrap: wrap; gap: 10px; }
.jv-ps-tile { flex: 1 1 110px; text-align: center; padding: 12px 10px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); }
.jv-ps-tile span { display: block; font-size: 22px; font-weight: 700; line-height: 1.15; color: var(--ink-mute); }
.jv-ps-tile.has span { color: var(--accent); }
.jv-ps-tile em { font-style: normal; font-size: 11px; color: var(--ink-mute); }
.jv-ps-chartwrap { padding: 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); }
.jv-ps-chart { width: 100%; height: auto; display: block; }
.jv-ps-grid { stroke: var(--line); stroke-width: 1; }
.jv-ps-axis { font-size: 10px; fill: #8A94A6; }
.jv-ps-axisx { text-anchor: middle; }
.jv-ps-key { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; font-size: 11px; color: var(--ink-mute); }
.jv-ps-key span { display: inline-flex; align-items: center; gap: 5px; }
.jv-ps-key i { width: 10px; height: 3px; border-radius: 2px; display: inline-block; }
.jv-ps-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.jv-ps-card { border: 1px solid var(--line); border-radius: var(--r); background: var(--chrome); padding: 14px; }
.jv-ps-cardtop { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.jv-ps-plat { color: var(--accent); font-size: 16px; }
.jv-ps-acct { font-size: 11px; color: var(--ink-mute); }
.jv-ps-open { margin-left: auto; font-size: 11px; }
.jv-ps-nums { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.jv-ps-nums li { min-width: 62px; }
.jv-ps-nums span { display: block; font-size: 16px; font-weight: 700; }
.jv-ps-nums em { font-style: normal; font-size: 10px; color: var(--ink-mute); }
.jv-ps-cardnote { margin: 10px 0 0; font-size: 11px; color: var(--ink-mute); }
.jv-ps-cardbad { color: #B91C1C; }
.jv-demo-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 22px; margin-top: 6px; }
.jv-demo-col h3 { margin: 0 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-mute); }
.jv-demo-list { list-style: none; margin: 0; padding: 0; }
.jv-demo-list li { display: grid; grid-template-columns: 72px 1fr 52px; align-items: center; gap: 8px; padding: 3px 0; font-size: 12px; }
.jv-demo-b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jv-demo-bar { background: var(--line); border-radius: 999px; height: 8px; overflow: hidden; }
.jv-demo-bar i { display: block; height: 100%; background: var(--accent); border-radius: 999px; }
.jv-demo-v { text-align: right; color: var(--ink-mute); }
.jv-sitebar-away { border-color: #F5C77E; border-left-color: #D97706; background: #FEF6E7; }
.jv-sitebar-away .bi-buildings { color: #B45309; }
.jv-sitebar-away .jv-sitebar-name { color: #92400E; }
.jv-bt-grid { margin-top: 4px; overflow-x: auto; }
.jv-bt-row { display: grid; grid-template-columns: 42px repeat(24, minmax(14px, 1fr)); gap: 2px; align-items: center; margin-bottom: 2px; min-width: 480px; }
.jv-bt-row > span { font-size: 11px; color: var(--ink-mute); }
.jv-bt-head em { font-style: normal; font-size: 10px; color: var(--ink-mute); }
.jv-bt-cell { display: block; height: 16px; border-radius: 3px; background: var(--line); }
.jv-bt-cell.on { background: var(--accent); }
.jv-bt-cell.on.thin { background: var(--accent); outline: 1px dashed var(--accent-line); outline-offset: -1px; }
.jv-bt-note { margin: 8px 0 0; font-size: 11px; color: var(--ink-mute); }
.jv-brk-wrap { overflow-x: auto; }
.jv-brk { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 640px; }
.jv-brk th { text-align: left; font-weight: 600; color: var(--ink-mute); font-size: 11px; padding: 6px 8px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.jv-brk td { padding: 7px 8px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.jv-brk tbody tr:hover { background: var(--accent-wash); }
.jv-brk .jv-brk-num { text-align: right; }
.jv-brk td i { color: var(--accent); margin-right: 4px; }
.jv-brk-none { color: var(--line); }
.jv-brk-er { font-weight: 600; }
.jv-brk tfoot td { border-bottom: 0; border-top: 2px solid var(--line); font-weight: 600; }

.jv-tiles { margin: 4px 0 2px; }
.jv-tile { border: 1px solid var(--line); border-radius: var(--r); padding: 12px 14px; height: 100%; background: var(--chrome); }
.jv-tile-label { font-size: 11px; font-weight: 600; color: var(--ink-mute); text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.jv-tile-label i { color: var(--accent); margin-right: 5px; }
.jv-tile-value { font-size: 26px; font-weight: 600; color: var(--ink); line-height: 1.2; margin: 4px 0 2px; }
.jv-tile-delta { font-size: 11px; color: var(--ink-mute); white-space: nowrap; }
.jv-tile-up { color: var(--ok); font-weight: 600; }
.jv-tile-down { color: var(--bad); font-weight: 600; }
.jv-tile-up i, .jv-tile-down i { margin-right: 2px; }
.jv-tile-flat { color: var(--ink-faint); }
.jv-tile-vs { color: var(--ink-faint); }
.jv-top td.jv-top-post { white-space: normal; min-width: 240px; max-width: 340px; }
.jv-top-plat { display: block; font-size: 11px; font-weight: 600; color: var(--ink-mute); }
.jv-top-cap { display: block; color: var(--ink); }
.jv-top-cap a { color: var(--accent); text-decoration: none; }
.jv-top-cap a:hover { text-decoration: underline; }
.jv-ps-raw { display: inline-block; margin-top: 4px; font-size: 11px; font-family: ui-monospace, Consolas, monospace; color: var(--ink-faint); }
