:root {
	--vn-ink: #172033;
	--vn-muted: #5f6878;
	--vn-line: #dce2eb;
	--vn-soft: #f4f7fb;
	--vn-surface: #ffffff;
	--vn-brand: #2359c4;
	--vn-brand-dark: #173e8d;
	--vn-odd: #f08b5d;
	--vn-odd-soft: #fff1e9;
	--vn-even: #4d77d6;
	--vn-even-soft: #edf3ff;
	--vn-today: #087f5b;
	--vn-red: #bc2f3c;
	--vn-radius: 18px;
	--vn-shadow: 0 12px 40px rgba(32, 45, 75, 0.08);
}

.vn-app *,
.vn-app *::before,
.vn-app *::after {
	box-sizing: border-box;
}

.vn-main {
	color: var(--vn-ink);
	min-height: 65vh;
}

.vn-shell {
	margin-inline: auto;
	max-width: 1180px;
	padding-inline: clamp(18px, 4vw, 34px);
	width: 100%;
}

.vn-section {
	padding-block: clamp(56px, 8vw, 96px);
}

.vn-section--tight {
	padding-block: 32px;
}

.vn-section--inner {
	padding-block: 54px 24px;
}

.vn-section--soft {
	background: var(--vn-soft);
}

.vn-eyebrow {
	color: var(--vn-brand);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	margin: 0 0 8px;
	text-transform: uppercase;
}

.vn-page-header {
	max-width: 790px;
	padding-block: 32px 46px;
}

.vn-page-header h1,
.vn-section-heading h2,
.vn-hero h1,
.vn-week-detail h1 {
	letter-spacing: -0.045em;
	line-height: 1.02;
	margin: 0;
}

.vn-page-header h1 {
	font-size: clamp(2.25rem, 6vw, 4.7rem);
}

.vn-page-header > p:last-child {
	color: var(--vn-muted);
	font-size: clamp(1.05rem, 2vw, 1.25rem);
	line-height: 1.6;
	margin: 20px 0 0;
}

.vn-section-heading {
	margin-bottom: 30px;
}

.vn-section-heading h2 {
	font-size: clamp(1.8rem, 4vw, 3rem);
}

.vn-section-heading--row {
	align-items: end;
	display: flex;
	gap: 24px;
	justify-content: space-between;
}

.vn-section-heading--row a {
	font-weight: 750;
	white-space: nowrap;
}

.vn-breadcrumbs {
	font-size: 0.87rem;
	padding-top: 24px;
}

.vn-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.vn-breadcrumbs li:not(:last-child)::after {
	color: #98a1b0;
	content: "/";
	margin-left: 6px;
}

.vn-breadcrumbs a {
	color: var(--vn-muted);
}

.vn-breadcrumbs span {
	font-weight: 700;
}

.vn-hero {
	background:
		radial-gradient(circle at 15% 20%, rgba(255,255,255,.85), transparent 28%),
		linear-gradient(135deg, var(--vn-even-soft), #f8fbff 60%);
	border-bottom: 1px solid var(--vn-line);
	overflow: hidden;
	position: relative;
}

.vn-hero--udda {
	background:
		radial-gradient(circle at 15% 20%, rgba(255,255,255,.85), transparent 28%),
		linear-gradient(135deg, var(--vn-odd-soft), #fffaf7 60%);
}

.vn-hero__inner {
	padding-block: clamp(52px, 8vw, 92px) 42px;
}

.vn-hero__headline,
.vn-week-detail__top {
	align-items: center;
	display: flex;
	gap: 20px;
	justify-content: space-between;
}

.vn-hero h1 {
	align-items: baseline;
	display: flex;
	font-size: clamp(5rem, 16vw, 10.5rem);
	gap: 0.12em;
}

.vn-hero h1 span {
	font-size: 0.28em;
	font-weight: 750;
	letter-spacing: -0.02em;
}

.vn-hero__range {
	font-size: clamp(1.35rem, 3vw, 2.1rem);
	font-weight: 750;
	margin: 10px 0 4px;
}

.vn-hero__today {
	color: var(--vn-muted);
	font-size: 1.05rem;
	margin: 0 0 30px;
}

.vn-badge {
	align-items: center;
	background: var(--vn-surface);
	border: 1px solid var(--vn-line);
	border-radius: 999px;
	display: inline-flex;
	font-size: 0.86rem;
	font-weight: 800;
	gap: 7px;
	padding: 7px 12px 7px 7px;
	white-space: nowrap;
}

.vn-badge > span {
	align-items: center;
	background: var(--vn-even);
	border-radius: 50%;
	color: #fff;
	display: inline-flex;
	height: 24px;
	justify-content: center;
	width: 24px;
}

.vn-badge--udda > span {
	background: var(--vn-odd);
}

.vn-days {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.vn-day {
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(36, 51, 79, 0.12);
	border-radius: 14px;
	min-height: 122px;
	padding: 15px 12px;
	position: relative;
	text-align: center;
}

.vn-day.is-today {
	background: var(--vn-ink);
	border-color: var(--vn-ink);
	box-shadow: 0 10px 24px rgba(23, 32, 51, 0.18);
	color: #fff;
	transform: translateY(-4px);
}

.vn-day.is-red-day:not(.is-today) {
	border-color: rgba(188, 47, 60, 0.42);
}

.vn-day__name,
.vn-day__month {
	display: block;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.vn-day__date {
	display: block;
	font-size: clamp(1.75rem, 4vw, 2.55rem);
	line-height: 1.12;
	margin: 5px 0;
}

.vn-day__status,
.vn-day__holiday {
	display: block;
	font-size: 0.68rem;
	font-weight: 750;
	line-height: 1.2;
	margin-top: 6px;
}

.vn-day__holiday {
	color: var(--vn-red);
}

.vn-day.is-today .vn-day__holiday {
	color: #ffd8dc;
}

.vn-progress {
	background: rgba(23, 32, 51, 0.12);
	border-radius: 999px;
	height: 7px;
	margin-top: 25px;
	overflow: hidden;
}

.vn-progress span {
	background: var(--vn-today);
	border-radius: inherit;
	display: block;
	height: 100%;
}

.vn-week-nav,
.vn-year-nav {
	align-items: center;
	display: grid;
	gap: 10px;
	grid-template-columns: 1fr auto 1fr;
	margin-top: 28px;
}

.vn-week-nav a,
.vn-year-nav a,
.vn-year-nav span {
	background: rgba(255,255,255,.76);
	border: 1px solid var(--vn-line);
	border-radius: 10px;
	font-size: 0.9rem;
	font-weight: 750;
	padding: 11px 14px;
	text-align: center;
	text-decoration: none;
}

.vn-week-nav a:first-child,
.vn-year-nav a:first-child {
	text-align: left;
}

.vn-week-nav a:last-child,
.vn-year-nav a:last-child {
	text-align: right;
}

.vn-quick-tool {
	align-items: center;
	background: var(--vn-surface);
	border: 1px solid var(--vn-line);
	border-radius: var(--vn-radius);
	box-shadow: var(--vn-shadow);
	display: grid;
	gap: 24px;
	grid-template-columns: 1fr 1.3fr;
	margin-top: -58px;
	padding: clamp(22px, 4vw, 34px);
	position: relative;
	z-index: 2;
}

.vn-quick-tool h2 {
	font-size: clamp(1.35rem, 3vw, 2rem);
	margin: 0;
}

.vn-inline-form {
	align-items: end;
	display: grid;
	gap: 10px;
	grid-template-columns: 1fr auto;
}

.vn-inline-form label {
	font-size: 0.82rem;
	font-weight: 750;
	grid-column: 1 / -1;
}

.vn-app input,
.vn-app select {
	background: #fff;
	border: 1px solid #b8c1cf;
	border-radius: 10px;
	color: var(--vn-ink);
	font: inherit;
	min-height: 48px;
	padding: 10px 12px;
}

.vn-app input:focus,
.vn-app select:focus,
.vn-app button:focus-visible,
.vn-app a:focus-visible {
	outline: 3px solid rgba(35, 89, 196, 0.35);
	outline-offset: 3px;
}

.vn-button {
	align-items: center;
	background: var(--vn-brand);
	border: 1px solid var(--vn-brand);
	border-radius: 10px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 800;
	justify-content: center;
	min-height: 48px;
	padding: 11px 18px;
	text-decoration: none;
}

.vn-button:hover {
	background: var(--vn-brand-dark);
	color: #fff;
}

.vn-button--secondary {
	background: transparent;
	color: var(--vn-brand);
}

.vn-card-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vn-card {
	background: var(--vn-surface);
	border: 1px solid var(--vn-line);
	border-radius: var(--vn-radius);
	box-shadow: 0 4px 18px rgba(32, 45, 75, 0.04);
	color: var(--vn-ink);
	display: block;
	min-height: 240px;
	padding: 26px;
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.vn-card:hover {
	border-color: rgba(35, 89, 196, .35);
	box-shadow: var(--vn-shadow);
	transform: translateY(-4px);
}

.vn-card--featured {
	background: var(--vn-ink);
	border-color: var(--vn-ink);
	color: #fff;
}

.vn-card__icon {
	align-items: center;
	background: var(--vn-even-soft);
	border-radius: 12px;
	color: var(--vn-brand);
	display: inline-flex;
	font-size: .83rem;
	font-weight: 900;
	height: 46px;
	justify-content: center;
	letter-spacing: .04em;
	width: 46px;
}

.vn-card--featured .vn-card__icon {
	background: rgba(255,255,255,.12);
	color: #fff;
}

.vn-card h2,
.vn-card h3 {
	font-size: 1.35rem;
	margin: 26px 0 10px;
}

.vn-card p {
	color: var(--vn-muted);
	line-height: 1.55;
	margin: 0;
}

.vn-card--featured p {
	color: rgba(255,255,255,.74);
}

.vn-upcoming {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vn-upcoming__item {
	background: #fff;
	border: 1px solid var(--vn-line);
	border-radius: 14px;
	color: var(--vn-ink);
	display: flex;
	flex-direction: column;
	gap: 7px;
	padding: 20px;
	text-decoration: none;
}

.vn-upcoming__item span {
	color: var(--vn-muted);
	font-size: .9rem;
	line-height: 1.4;
}

.vn-upcoming__item small {
	color: var(--vn-brand);
	font-weight: 800;
}

.vn-explainer {
	display: grid;
	gap: 8vw;
	grid-template-columns: .8fr 1.2fr;
}

.vn-explainer h2 {
	font-size: clamp(1.8rem, 4vw, 3rem);
	margin: 0;
}

.vn-explainer p {
	color: var(--vn-muted);
	font-size: 1.08rem;
	line-height: 1.7;
	margin-top: 0;
}

.vn-explainer a {
	font-weight: 800;
}

.vn-explainer--compact {
	border-top: 1px solid var(--vn-line);
	margin-top: 50px;
	padding-top: 38px;
}

.vn-week-detail {
	background: var(--vn-even-soft);
	border: 1px solid #d7e2f8;
	border-radius: 24px;
	padding: clamp(24px, 5vw, 48px);
}

.vn-week-detail--udda {
	background: var(--vn-odd-soft);
	border-color: #f4d8c9;
}

.vn-week-detail h1 {
	font-size: clamp(3.5rem, 10vw, 7rem);
}

.vn-week-detail h1 span {
	color: var(--vn-muted);
	font-size: .34em;
}

.vn-week-detail__range {
	font-size: clamp(1.15rem, 3vw, 1.65rem);
	font-weight: 750;
	margin: 10px 0 30px;
}

.vn-detail-grid,
.vn-parity-lists,
.vn-reading-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 28px;
}

.vn-panel {
	background: var(--vn-surface);
	border: 1px solid var(--vn-line);
	border-radius: var(--vn-radius);
	padding: clamp(22px, 4vw, 34px);
}

.vn-panel--wide {
	margin-top: 28px;
}

.vn-panel h2 {
	font-size: clamp(1.35rem, 3vw, 2rem);
	margin: 0 0 18px;
}

.vn-panel p {
	color: var(--vn-muted);
	line-height: 1.65;
}

.vn-copy-list {
	display: grid;
	gap: 9px;
}

.vn-copy-list button {
	align-items: center;
	background: var(--vn-soft);
	border: 1px solid transparent;
	border-radius: 10px;
	color: var(--vn-ink);
	cursor: pointer;
	display: grid;
	font: inherit;
	gap: 12px;
	grid-template-columns: 70px 1fr auto;
	padding: 12px;
	text-align: left;
}

.vn-copy-list button:hover {
	border-color: var(--vn-line);
}

.vn-copy-list span,
.vn-copy-list em {
	color: var(--vn-muted);
	font-size: .76rem;
	font-style: normal;
	font-weight: 750;
}

.vn-copy-list em {
	color: var(--vn-brand);
}

.vn-fact-list {
	display: grid;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.vn-fact-list li {
	background: #fff5f6;
	border-left: 4px solid var(--vn-red);
	border-radius: 8px;
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 12px 14px;
}

.vn-fact-list span {
	color: var(--vn-muted);
	font-size: .88rem;
}

.vn-year-comparison {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.vn-year-comparison a {
	border: 1px solid var(--vn-line);
	border-radius: 12px;
	color: var(--vn-ink);
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px;
	text-decoration: none;
}

.vn-year-comparison a.is-current {
	background: var(--vn-ink);
	color: #fff;
}

.vn-year-comparison span {
	color: var(--vn-muted);
	font-size: .8rem;
	line-height: 1.35;
}

.vn-year-comparison .is-current span {
	color: rgba(255,255,255,.7);
}

.vn-tool-nav {
	border-top: 1px solid var(--vn-line);
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 54px;
	padding-block: 28px 56px;
}

.vn-tool-nav a {
	background: var(--vn-soft);
	border-radius: 999px;
	font-size: .9rem;
	font-weight: 750;
	padding: 10px 15px;
	text-decoration: none;
}

.vn-table-wrap {
	border: 1px solid var(--vn-line);
	border-radius: var(--vn-radius);
	overflow: hidden;
}

.vn-week-table,
.vn-schedule-table {
	border-collapse: collapse;
	font-size: .94rem;
	width: 100%;
}

.vn-week-table th,
.vn-week-table td,
.vn-schedule-table th,
.vn-schedule-table td {
	border-bottom: 1px solid var(--vn-line);
	padding: 14px 16px;
	text-align: left;
	vertical-align: middle;
}

.vn-week-table thead,
.vn-schedule-table thead {
	background: var(--vn-ink);
	color: #fff;
}

.vn-week-table tbody tr:last-child > *,
.vn-schedule-table tbody tr:last-child > * {
	border-bottom: 0;
}

.vn-week-table tbody tr:hover {
	background: var(--vn-soft);
}

.vn-week-table tr.is-current {
	background: #eaf7f2;
}

.vn-table-now {
	background: var(--vn-today);
	border-radius: 999px;
	color: #fff;
	font-size: .66rem;
	margin-left: 8px;
	padding: 3px 7px;
	text-transform: uppercase;
}

.vn-callout {
	align-items: center;
	background: var(--vn-ink);
	border-radius: 22px;
	color: #fff;
	display: grid;
	gap: 8vw;
	grid-template-columns: 1fr 1fr;
	margin-block: 42px 56px;
	padding: clamp(28px, 5vw, 48px);
}

.vn-callout .vn-eyebrow {
	color: #9fc0ff;
}

.vn-callout h2 {
	font-size: clamp(1.7rem, 4vw, 2.8rem);
	margin: 0;
}

.vn-callout p {
	color: rgba(255,255,255,.76);
	line-height: 1.65;
}

.vn-callout a:not(.vn-button) {
	color: #fff;
	font-weight: 800;
}

.vn-tool-page,
.vn-reading-page {
	padding-bottom: 70px;
}

.vn-tool-layout {
	align-items: stretch;
	display: grid;
	gap: 20px;
	grid-template-columns: .85fr 1.15fr;
}

.vn-tool-form,
.vn-tool-result,
.vn-schedule-form,
.vn-schedule-result {
	background: var(--vn-surface);
	border: 1px solid var(--vn-line);
	border-radius: var(--vn-radius);
	padding: clamp(22px, 4vw, 34px);
}

.vn-tool-form {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.vn-tool-form label,
.vn-schedule-form label,
.vn-schedule-form legend {
	font-size: .86rem;
	font-weight: 800;
}

.vn-tool-form--columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.vn-tool-form--columns > div {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.vn-tool-form--columns .vn-button {
	grid-column: 1 / -1;
}

.vn-tool-result {
	background: linear-gradient(135deg, var(--vn-even-soft), #fff);
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.vn-tool-result h2 {
	font-size: clamp(2rem, 5vw, 3.4rem);
	letter-spacing: -.04em;
	margin: 0 0 14px;
}

.vn-tool-result > p {
	color: var(--vn-muted);
	font-size: 1.05rem;
}

.vn-tool-result > a {
	font-weight: 800;
	margin-top: 8px;
}

.vn-result-meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.vn-result-meta > span:not(.vn-badge) {
	color: var(--vn-muted);
	font-size: .86rem;
	font-weight: 700;
}

.vn-notice {
	background: var(--vn-even-soft);
	border-left: 4px solid var(--vn-even);
	border-radius: 9px;
	line-height: 1.55;
	margin-block: 18px;
	padding: 14px 16px;
}

.vn-notice--error {
	background: #fff1f2;
	border-color: var(--vn-red);
}

.vn-notice--warning {
	background: #fff6de;
	border-color: #c77c00;
}

.vn-parity-lists .vn-panel--odd {
	background: var(--vn-odd-soft);
}

.vn-parity-lists .vn-panel--even {
	background: var(--vn-even-soft);
}

.vn-week-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.vn-week-pills a {
	align-items: center;
	background: #fff;
	border: 1px solid var(--vn-line);
	border-radius: 999px;
	color: var(--vn-ink);
	display: inline-flex;
	font-size: .82rem;
	font-weight: 800;
	height: 38px;
	justify-content: center;
	min-width: 48px;
	padding: 0 10px;
	text-decoration: none;
}

.vn-week-pills--years a {
	min-width: 64px;
}

.vn-schedule-form {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vn-schedule-form > div:not(.vn-custom-pattern) {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.vn-schedule-form fieldset {
	border: 0;
	display: grid;
	gap: 8px;
	grid-column: 1 / -1;
	margin: 0;
	padding: 0;
}

.vn-schedule-form legend {
	margin-bottom: 8px;
}

.vn-choice {
	align-items: start;
	background: var(--vn-soft);
	border: 1px solid transparent;
	border-radius: 12px;
	cursor: pointer;
	display: flex;
	gap: 12px;
	padding: 14px;
}

.vn-choice:has(input:checked) {
	background: var(--vn-even-soft);
	border-color: var(--vn-even);
}

.vn-choice input {
	min-height: 20px;
	width: 20px;
}

.vn-choice span {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.vn-choice small {
	color: var(--vn-muted);
	font-weight: 500;
	line-height: 1.4;
}

.vn-custom-pattern {
	display: grid;
	gap: 12px;
	grid-column: 1 / -1;
	grid-template-columns: 1fr 1fr;
}

.vn-custom-pattern[hidden] {
	display: none;
}

.vn-custom-pattern > div {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.vn-schedule-form > .vn-button {
	align-self: end;
}

.vn-schedule-result {
	margin-top: 28px;
}

.vn-owner-a th {
	border-left: 5px solid var(--vn-even);
}

.vn-owner-b th {
	border-left: 5px solid var(--vn-odd);
}

.vn-legal-note {
	color: var(--vn-muted);
	font-size: .82rem;
	line-height: 1.5;
	margin: 18px 0 0;
}

.vn-reading-grid {
	grid-template-columns: 1.45fr .55fr;
}

.vn-reading-grid article > h2 {
	font-size: clamp(1.55rem, 3vw, 2.25rem);
	margin: 36px 0 12px;
}

.vn-reading-grid article > h2:first-child {
	margin-top: 0;
}

.vn-reading-grid article > p {
	color: var(--vn-muted);
	font-size: 1.05rem;
	line-height: 1.75;
}

.vn-steps {
	display: grid;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.vn-steps li {
	align-items: center;
	background: var(--vn-soft);
	border-radius: 14px;
	display: grid;
	gap: 16px;
	grid-template-columns: 46px 1fr;
	padding: 16px;
}

.vn-steps li > span {
	align-items: center;
	background: var(--vn-brand);
	border-radius: 50%;
	color: #fff;
	display: inline-flex;
	font-weight: 900;
	height: 42px;
	justify-content: center;
	width: 42px;
}

.vn-steps p {
	font-size: 1rem;
	font-weight: 650;
	margin: 0;
}

@media (max-width: 920px) {
	.vn-card-grid,
	.vn-upcoming {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vn-year-comparison {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.vn-days {
		gap: 7px;
	}

	.vn-day {
		min-height: 106px;
		padding: 12px 7px;
	}
}

@media (max-width: 720px) {
	.vn-hero__headline,
	.vn-week-detail__top,
	.vn-section-heading--row {
		align-items: flex-start;
		flex-direction: column;
	}

	.vn-hero h1 {
		font-size: clamp(4.8rem, 27vw, 8rem);
	}

	.vn-hero h1 span {
		display: block;
	}

	.vn-days {
		overflow-x: auto;
		padding: 4px 2px 10px;
		scroll-snap-type: x mandatory;
	}

	.vn-day {
		min-width: 84px;
		scroll-snap-align: start;
	}

	.vn-week-nav,
	.vn-year-nav {
		grid-template-columns: 1fr 1fr;
	}

	.vn-week-nav a:nth-child(2),
	.vn-year-nav > *:nth-child(2) {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.vn-quick-tool,
	.vn-tool-layout,
	.vn-detail-grid,
	.vn-parity-lists,
	.vn-reading-grid,
	.vn-callout,
	.vn-explainer {
		grid-template-columns: 1fr;
	}

	.vn-quick-tool {
		margin-top: -34px;
	}

	.vn-tool-form--columns,
	.vn-schedule-form {
		grid-template-columns: 1fr;
	}

	.vn-schedule-form fieldset,
	.vn-custom-pattern {
		grid-column: 1;
	}

	.vn-card {
		min-height: 210px;
	}

	.vn-year-comparison {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vn-week-table thead {
		clip: rect(0 0 0 0);
		height: 1px;
		overflow: hidden;
		position: absolute;
		width: 1px;
	}

	.vn-week-table,
	.vn-week-table tbody,
	.vn-week-table tr,
	.vn-week-table th,
	.vn-week-table td {
		display: block;
		width: 100%;
	}

	.vn-week-table tr {
		border-bottom: 8px solid var(--vn-soft);
		padding: 13px 16px;
	}

	.vn-week-table th,
	.vn-week-table td {
		border: 0;
		padding: 6px 0;
	}

	.vn-week-table td::before {
		color: var(--vn-muted);
		content: attr(data-label);
		display: inline-block;
		font-size: .75rem;
		font-weight: 800;
		min-width: 72px;
		text-transform: uppercase;
	}
}

@media (max-width: 480px) {
	.vn-card-grid,
	.vn-upcoming {
		grid-template-columns: 1fr;
	}

	.vn-inline-form {
		grid-template-columns: 1fr;
	}

	.vn-inline-form .vn-button {
		width: 100%;
	}

	.vn-year-comparison {
		grid-template-columns: 1fr;
	}

	.vn-copy-list button {
		grid-template-columns: 58px 1fr;
	}

	.vn-copy-list em {
		display: none;
	}

	.vn-schedule-table {
		font-size: .78rem;
	}

	.vn-schedule-table th,
	.vn-schedule-table td {
		padding: 10px 8px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vn-card {
		transition: none;
	}
	.vn-card:hover,
	.vn-day.is-today {
		transform: none;
	}
}

@media print {
	.vn-site-header,
	.vn-site-footer,
	.vn-breadcrumbs,
	.vn-tool-nav,
	.vn-schedule-form,
	.vn-button,
	.vn-week-nav {
		display: none !important;
	}

	.vn-main,
	.vn-schedule-result {
		background: #fff !important;
		border: 0;
		box-shadow: none;
		color: #000;
		padding: 0;
	}

	.vn-table-wrap {
		border-color: #777;
	}

	.vn-schedule-table th,
	.vn-schedule-table td {
		border-color: #aaa;
		padding: 7px;
	}
}

