/* ==========================================================================
   Devarsity — student account (My Account, login / registration, My Courses)
   Loaded only on the My Account page and the Register page. Every rule is
   scoped to .woocommerce-account (the My Account section), .devarsity-auth,
   .devarsity-account or .devarsity-course-grid, so cart, checkout and other
   pages are unaffected.
   ========================================================================== */

.woocommerce-account,
.devarsity-account,
.devarsity-auth,
.devarsity-course-grid {
	--dva-primary: #2864f0;
	--dva-primary-hover: #1d4fc4;
	--dva-tint: #eaf0fe;
	--dva-bg: #f8fafc;
	--dva-card: #ffffff;
	--dva-text: #172033;
	--dva-muted: #64748b;
	--dva-border: #e2e8f0;
	--dva-input: #8a94a6; /* 3:1 against white (form control boundary) */
	--dva-hover: #f1f5f9;
	--dva-radius: 12px;
	--dva-radius-sm: 8px;
	--dva-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.06);
	--dva-shadow-hover: 0 8px 24px rgba(15, 23, 42, 0.08);
	--dva-focus: 0 0 0 3px rgba(40, 100, 240, 0.25);
}

/* ---------- Page frame ---------- */
body.woocommerce-account { background-color: var(--dva-bg); }

/* Shell: container, heading and spacing for page templates that print no
   page header or container (Elementor Full Width / Canvas, theme Full width).
   Inside the default page template (.dv-store) it adds nothing. */
.devarsity-shell {
	width: 100%;
	max-width: var(--container, 1180px);
	margin: 0 auto;
	padding: clamp(32px, 5vw, 56px) var(--gutter, 24px) clamp(48px, 6vw, 80px);
	box-sizing: border-box;
	color: var(--dva-text);
}
.dv-store .devarsity-shell { max-width: none; padding: 0; }
.devarsity-shell__title { margin: 0 0 28px; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.15; letter-spacing: -0.02em; color: var(--dva-text); }
.devarsity-auth .devarsity-shell__title,
.devarsity-shell--auth .devarsity-shell__title { max-width: 980px; margin-left: auto; margin-right: auto; }
/* Headings and anchored cards never end up under the sticky header. */
.devarsity-shell__title,
.devarsity-auth__card,
.devarsity-account__head { scroll-margin-top: calc(var(--header-h, 76px) + 32px); }
.admin-bar .devarsity-shell__title,
.admin-bar .devarsity-auth__card,
.admin-bar .devarsity-account__head { scroll-margin-top: calc(var(--header-h, 76px) + 64px); }
/* Notices printed by WooCommerce outside the templates line up with them. */
.woocommerce-account .woocommerce:not(.dv-store .woocommerce) > .woocommerce-notices-wrapper:not(:empty),
.woocommerce-account .woocommerce:not(.dv-store .woocommerce) > .rtsb-notice:not(:empty) { max-width: var(--container, 1180px); margin: 24px auto 0; padding: 0 var(--gutter, 24px); box-sizing: border-box; }
.dv-pagehead--account .dv-pagehead__inner { padding-top: 28px; padding-bottom: 32px; }
.dv-pagehead--account .dv-h1 { font-size: clamp(28px, 3.4vw, 40px); line-height: 1.1; }
.woocommerce-account .entry-content > .woocommerce { margin: 0; }

/* WooCommerce clearfix pseudo-elements must not become grid items. */
.woocommerce-account .col2-set::before,
.woocommerce-account .col2-set::after { display: none; }
.woocommerce-account .col2-set .col-1,
.woocommerce-account .col2-set .col-2 { float: none; width: auto; max-width: none; }

/* ---------- Buttons and links ---------- */
.devarsity-btn,
.woocommerce-account .woocommerce .devarsity-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid transparent;
	border-radius: var(--dva-radius-sm);
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.devarsity-btn--primary,
.woocommerce-account .woocommerce .devarsity-btn.devarsity-btn--primary {
	background: var(--dva-primary) !important;
	border-color: var(--dva-primary) !important;
	color: #ffffff !important;
}
.devarsity-btn--primary:hover,
.woocommerce-account .woocommerce .devarsity-btn.devarsity-btn--primary:hover {
	background: var(--dva-primary-hover) !important;
	border-color: var(--dva-primary-hover) !important;
	color: #ffffff !important;
}
.devarsity-btn:focus-visible { outline: 2px solid var(--dva-primary); outline-offset: 2px; box-shadow: var(--dva-focus); }
.devarsity-btn--block,
.woocommerce-account .woocommerce .devarsity-btn--block { width: 100%; }

.devarsity-link { font-size: 14px; font-weight: 600; color: var(--dva-primary); text-decoration: none; }
.devarsity-link:hover { text-decoration: underline; color: var(--dva-primary-hover); }

/* ---------- Status badges ---------- */
.devarsity-status {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.4;
	white-space: nowrap;
}
.devarsity-status--success { background: #ecfdf3; color: #067647; }
.devarsity-status--info { background: #eff4ff; color: #1a44a8; }
.devarsity-status--warning { background: #fffaeb; color: #93370d; }
.devarsity-status--danger { background: #fef3f2; color: #b42318; }
.devarsity-status--neutral { background: #f1f5f9; color: #475467; }

/* ==========================================================================
   Logged-in layout: sidebar + content
   ========================================================================== */
.devarsity-account {
	display: grid;
	grid-template-columns: 252px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
	color: var(--dva-text);
}
.devarsity-account__content { min-width: 0; }
/* WooCommerce floats these at 30% / 68%; the grid sizes them here. */
.woocommerce-account .devarsity-account .woocommerce-MyAccount-navigation,
.woocommerce-account .devarsity-account .woocommerce-MyAccount-content { float: none; width: auto; margin: 0; }

/* Sidebar */
.devarsity-account-nav {
	position: sticky;
	top: var(--sticky-top, 100px);
	padding: 12px;
	background: var(--dva-card);
	border: 1px solid var(--dva-border);
	border-radius: var(--dva-radius);
	box-shadow: var(--dva-shadow);
}
.devarsity-account-nav__user {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 8px 16px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--dva-border);
	min-width: 0;
}
.devarsity-account-nav__avatar {
	flex: none;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--dva-tint);
	color: var(--dva-primary);
	font-weight: 700;
	font-size: 15px;
}
.devarsity-account-nav__who { display: flex; flex-direction: column; min-width: 0; }
.devarsity-account-nav__name { font-size: 15px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.devarsity-account-nav__email { font-size: 13px; color: var(--dva-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.devarsity-account-nav__toggle { display: none; }
.devarsity-account-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.devarsity-account-nav__list li { margin: 0; }
.devarsity-account-nav__list a {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	padding: 0 12px;
	border-radius: var(--dva-radius-sm);
	color: var(--dva-text);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
.devarsity-account-nav__list a .dv-icon { flex: none; color: var(--dva-muted); }
.devarsity-account-nav__list a:hover { background: var(--dva-hover); }
.devarsity-account-nav__list a:focus-visible { outline: 2px solid var(--dva-primary); outline-offset: 0; }
.devarsity-account-nav__list .is-active a { background: var(--dva-tint); color: var(--dva-primary-hover); font-weight: 600; }
.devarsity-account-nav__list .is-active a .dv-icon { color: var(--dva-primary); }
.devarsity-account-nav__list .woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--dva-border); }
.devarsity-account-nav__list .woocommerce-MyAccount-navigation-link--customer-logout a:hover { background: #fef3f2; color: #b42318; }
.devarsity-account-nav__list .woocommerce-MyAccount-navigation-link--customer-logout a:hover .dv-icon { color: #b42318; }

/* Section heading */
.devarsity-account__head { margin: 0 0 20px; }
.devarsity-account__title { margin: 0; font-size: 24px; line-height: 1.25; letter-spacing: -0.02em; color: var(--dva-text); }
.devarsity-account__intro { margin: 6px 0 0; color: var(--dva-muted); font-size: 15px; }

/* Notices inside the account */
.woocommerce-account .woocommerce-notices-wrapper:empty,
.woocommerce-account .rtsb-notice:empty { display: none; }
.devarsity-account__content .woocommerce-message,
.devarsity-account__content .woocommerce-info,
.devarsity-account__content .woocommerce-error,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-error { border-radius: var(--dva-radius-sm); font-weight: 500; }

/* ---------- Cards and empty states ---------- */
.devarsity-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 40px 24px;
	background: var(--dva-card);
	border: 1px solid var(--dva-border);
	border-radius: var(--dva-radius);
	text-align: center;
}
.devarsity-empty p { margin: 0; max-width: 440px; color: var(--dva-muted); }
.devarsity-empty .devarsity-empty__title { color: var(--dva-text); font-size: 17px; font-weight: 600; }
.devarsity-empty .devarsity-btn { margin-top: 12px; }
.devarsity-empty__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--dva-tint); color: var(--dva-primary); margin-bottom: 4px; }

/* ==========================================================================
   Dashboard
   ========================================================================== */
.devarsity-dashboard { display: flex; flex-direction: column; gap: 28px; }
.devarsity-dashboard__welcome {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px 24px;
	padding: 24px;
	background: var(--dva-card);
	border: 1px solid var(--dva-border);
	border-radius: var(--dva-radius);
	box-shadow: var(--dva-shadow);
}
.devarsity-dashboard__hello { margin: 0; font-size: clamp(22px, 2.4vw, 26px); line-height: 1.25; letter-spacing: -0.02em; overflow-wrap: anywhere; }
.devarsity-dashboard__lead { margin: 6px 0 0; color: var(--dva-muted); max-width: 560px; }
.devarsity-dashboard__switch { margin: 0; font-size: 14px; color: var(--dva-muted); }
.devarsity-dashboard__switch a { color: var(--dva-primary); font-weight: 600; }

.devarsity-stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 16px; }
.devarsity-stat {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	padding: 18px 20px;
	background: var(--dva-card);
	border: 1px solid var(--dva-border);
	border-radius: var(--dva-radius);
	box-shadow: var(--dva-shadow);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.devarsity-stat:has(a:hover) { border-color: #c7d6fb; box-shadow: var(--dva-shadow-hover); }
.devarsity-stat__icon { display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: 8px; border-radius: var(--dva-radius-sm); background: var(--dva-tint); color: var(--dva-primary); }
.devarsity-stat--awaiting .devarsity-stat__icon { background: #fffaeb; color: #b54708; }
.devarsity-stat__value { font-size: 28px; font-weight: 700; line-height: 1.1; letter-spacing: -0.02em; color: var(--dva-text); }
.devarsity-stat__label { font-size: 14px; color: var(--dva-muted); text-decoration: none; }
a.devarsity-stat__label::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
a.devarsity-stat__label:focus-visible { outline: none; }
a.devarsity-stat__label:focus-visible::after { outline: 2px solid var(--dva-primary); outline-offset: 2px; }

.devarsity-dashboard__section-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 16px; }
.devarsity-dashboard__title { margin: 0; font-size: 20px; line-height: 1.3; letter-spacing: -0.015em; }

.devarsity-recent { list-style: none; margin: 0; padding: 0; background: var(--dva-card); border: 1px solid var(--dva-border); border-radius: var(--dva-radius); box-shadow: var(--dva-shadow); }
.devarsity-recent__item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px 20px; margin: 0; padding: 14px 20px; border-top: 1px solid var(--dva-border); }
.devarsity-recent__item:first-child { border-top: 0; }
.devarsity-recent__main { display: flex; flex-direction: column; min-width: 0; }
.devarsity-recent__number { font-weight: 600; color: var(--dva-text); text-decoration: none; }
.devarsity-recent__number:hover { color: var(--dva-primary); text-decoration: underline; }
.devarsity-recent__date { font-size: 13px; color: var(--dva-muted); }
.devarsity-recent__total { font-weight: 600; text-align: right; min-width: 80px; }

/* ==========================================================================
   Course cards (My Courses and dashboard)
   ========================================================================== */
.devarsity-course-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
	gap: 20px;
}
.devarsity-course-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	background: var(--dva-card);
	border: 1px solid var(--dva-border);
	border-radius: var(--dva-radius);
	box-shadow: var(--dva-shadow);
	overflow: hidden;
	transition: box-shadow .2s ease, transform .2s ease;
}
.devarsity-course-card:hover { box-shadow: var(--dva-shadow-hover); }
.devarsity-course-card__media { display: block; text-decoration: none; aspect-ratio: 16 / 9; background: var(--dva-tint); overflow: hidden; }
.devarsity-course-card__img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* No course image: a light panel with a small icon tile in the course colour. */
.devarsity-course-card__fallback {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 100%;
	background-color: var(--dva-tint);
	background-image: radial-gradient(rgba(40, 100, 240, 0.14) 1px, transparent 1px);
	background-size: 18px 18px;
}
.devarsity-course-card__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--thumb-bg, var(--dva-primary));
	color: var(--thumb-fg, #ffffff);
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}
.devarsity-course-card__icon svg { width: 26px; height: 26px; }
.devarsity-course-card__code { font-size: 12px; font-weight: 700; line-height: 1; letter-spacing: 0.1em; text-transform: uppercase; color: #1a44a8; }
.devarsity-course-card__body { display: flex; flex-direction: column; flex: 1; gap: 8px; padding: 18px 20px 20px; }
.devarsity-course-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.devarsity-course-card__cat,
.devarsity-course-card__status { display: inline-flex; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.4; }
.devarsity-course-card__cat { background: var(--dva-hover); color: #334155; }
.devarsity-course-card__status { background: #ecfdf3; color: #067647; }
.devarsity-course-card__title { margin: 2px 0 0; font-size: 17px; line-height: 1.35; letter-spacing: -0.01em; min-height: 2.7em; }
.devarsity-course-card__title a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: var(--dva-text);
	text-decoration: none;
}
.devarsity-course-card__title a:hover { color: var(--dva-primary); }
.devarsity-course-card__title a:focus-visible { outline: 2px solid var(--dva-primary); outline-offset: 2px; border-radius: 2px; }
.devarsity-course-card__meta,
.devarsity-course-card__instructor { margin: 0; font-size: 13.5px; line-height: 1.45; color: var(--dva-muted); }
.devarsity-course-card__progress { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.devarsity-progress { flex: 1; height: 6px; border-radius: 999px; background: var(--dva-border); overflow: hidden; }
.devarsity-progress span { display: block; height: 100%; background: var(--dva-primary); }
.devarsity-course-card__progress-text { font-size: 13px; font-weight: 600; color: var(--dva-muted); white-space: nowrap; }
.devarsity-course-card__cta,
.woocommerce-account .woocommerce .devarsity-course-card__cta { margin-top: auto; width: 100%; }
.devarsity-course-card__body > .devarsity-course-card__cta { margin-top: auto; }
.devarsity-course-card__body > :nth-last-child(2) { margin-bottom: 8px; }

/* ==========================================================================
   Order history
   ========================================================================== */
.devarsity-orders { background: var(--dva-card); border: 1px solid var(--dva-border); border-radius: var(--dva-radius); box-shadow: var(--dva-shadow); overflow: hidden; }
.woocommerce-account table.devarsity-orders__table { width: 100%; margin: 0; border: 0; border-radius: 0; border-collapse: collapse; font-size: 15px; }
.woocommerce-account table.devarsity-orders__table thead th { padding: 12px 20px; background: var(--dva-bg); border-bottom: 1px solid var(--dva-border); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--dva-muted); text-align: left; }
.woocommerce-account table.devarsity-orders__table tbody th,
.woocommerce-account table.devarsity-orders__table tbody td { padding: 16px 20px; border-top: 0; border-bottom: 1px solid var(--dva-border); vertical-align: middle; text-align: left; }
.woocommerce-account table.devarsity-orders__table tbody tr:last-child th,
.woocommerce-account table.devarsity-orders__table tbody tr:last-child td { border-bottom: 0; }
.woocommerce-account table.devarsity-orders__table tbody th { font-size: 15px; font-weight: 600; letter-spacing: normal; text-transform: none; color: var(--dva-text); }
.devarsity-orders__table .woocommerce-orders-table__cell-order-number a { font-weight: 600; color: var(--dva-primary); text-decoration: none; }
.devarsity-orders__table .woocommerce-orders-table__cell-order-number a:hover { text-decoration: underline; }
.devarsity-orders__total { display: block; font-weight: 600; }
.devarsity-orders__items { display: block; font-size: 13px; color: var(--dva-muted); }
.woocommerce-account table.devarsity-orders__table .woocommerce-orders-table__cell-order-actions { text-align: right; }
.devarsity-orders__actions { display: inline-flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.woocommerce-account .woocommerce .devarsity-orders__actions .button {
	min-height: 36px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid #c7d6fb;
	border-radius: var(--dva-radius-sm);
	background: var(--dva-card);
	color: var(--dva-primary-hover);
	font-size: 14px;
	font-weight: 600;
}
.woocommerce-account .woocommerce .devarsity-orders__actions .button:hover { background: var(--dva-tint); color: var(--dva-primary-hover); }
.woocommerce-account .woocommerce .devarsity-orders__actions .button.pay { background: var(--dva-primary); border-color: var(--dva-primary); color: #ffffff; }
.devarsity-pagination { display: flex; gap: 8px; margin-top: 16px; }

/* ==========================================================================
   Forms (profile, addresses, login, register, lost password)
   ========================================================================== */
.woocommerce-account .woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
.woocommerce-account .woocommerce form .form-row label:not(.woocommerce-form__label-for-checkbox) { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--dva-text); line-height: 1.4; }
.woocommerce-account .woocommerce form .form-row input.input-text,
.woocommerce-account .woocommerce form .form-row select,
.woocommerce-account .woocommerce form .form-row textarea,
.woocommerce-account .woocommerce .select2-container .select2-selection--single {
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid var(--dva-input);
	border-radius: var(--dva-radius-sm);
	background: var(--dva-card);
	color: var(--dva-text);
	font-size: 15px;
	line-height: 1.4;
	box-shadow: none;
}
.woocommerce-account .woocommerce form .form-row input.input-text:focus,
.woocommerce-account .woocommerce form .form-row select:focus,
.woocommerce-account .woocommerce form .form-row textarea:focus {
	outline: 2px solid transparent;
	border-color: var(--dva-primary);
	box-shadow: var(--dva-focus);
}
.woocommerce-account .woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce-account .woocommerce form .form-row input[aria-invalid="true"] { border-color: #b42318; }
.woocommerce-account .woocommerce form .form-row.woocommerce-invalid label { color: #b42318; }
.woocommerce-account .woocommerce form .password-input { display: block; position: relative; }
.woocommerce-account .woocommerce form .password-input input.input-text { padding-right: 48px; }
.woocommerce-account .woocommerce form .show-password-input { top: 50%; right: 6px; transform: translateY(-50%); width: 36px; height: 36px; border-radius: var(--dva-radius-sm); }
.woocommerce-account .woocommerce form .show-password-input:focus-visible { outline: 2px solid var(--dva-primary); }
.woocommerce-account .woocommerce form .required { color: #b42318; text-decoration: none; }
.devarsity-hint { display: block; margin: 6px 0 0; font-size: 13px; color: var(--dva-muted); font-style: normal; }

/* Panels (profile, address form) */
.devarsity-panel,
.devarsity-account__content .woocommerce-address-fields,
.devarsity-account__content form.woocommerce-EditAccountForm > fieldset {
	margin: 0 0 20px;
	padding: 24px;
	background: var(--dva-card);
	border: 1px solid var(--dva-border);
	border-radius: var(--dva-radius);
	box-shadow: var(--dva-shadow);
	min-width: 0;
}
.devarsity-panel__title,
.woocommerce-account fieldset.devarsity-panel > legend { margin: 0 0 16px; padding: 0; font-size: 18px; font-weight: 600; line-height: 1.3; color: var(--dva-text); }
.woocommerce-account fieldset.devarsity-panel > legend { float: left; width: 100%; }
.woocommerce-account fieldset.devarsity-panel > legend + * { clear: both; }
.devarsity-panel > .devarsity-hint { margin: -8px 0 16px; }
.devarsity-fields,
.devarsity-account__content .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.woocommerce-account .woocommerce .devarsity-fields .form-row,
.woocommerce-account .woocommerce .woocommerce-address-fields__field-wrapper .form-row { float: none; width: auto; grid-column: 1 / -1; }
.woocommerce-account .woocommerce .devarsity-fields .form-row-first,
.woocommerce-account .woocommerce .devarsity-fields .form-row-last,
.woocommerce-account .woocommerce .woocommerce-address-fields__field-wrapper .form-row-first,
.woocommerce-account .woocommerce .woocommerce-address-fields__field-wrapper .form-row-last { grid-column: auto; }
.devarsity-fields .clear,
.devarsity-fields::before,
.devarsity-fields::after,
.devarsity-account__content .woocommerce-address-fields__field-wrapper::before,
.devarsity-account__content .woocommerce-address-fields__field-wrapper::after,
.devarsity-account__content .woocommerce-Addresses::before,
.devarsity-account__content .woocommerce-Addresses::after { display: none; }
.devarsity-profile__actions,
.devarsity-account__content .woocommerce-address-fields > p:last-child { margin: 0; }
.devarsity-account__content .woocommerce-address-fields button.button,
.devarsity-account__content .woocommerce-address-fields .button {
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid var(--dva-primary);
	border-radius: var(--dva-radius-sm);
	background: var(--dva-primary);
	color: #ffffff;
	font-size: 15px;
	font-weight: 600;
}
.devarsity-account__content .woocommerce-address-fields .button:hover { background: var(--dva-primary-hover); color: #ffffff; }
.devarsity-account__content form h2,
.devarsity-account__content form h3:not(.devarsity-panel__title) { font-size: 18px; margin: 0 0 16px; }

/* Addresses overview */
.devarsity-account__content .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 20px; margin: 16px 0 0; }
.devarsity-account__content .woocommerce-Address { padding: 20px 24px; background: var(--dva-card); border: 1px solid var(--dva-border); border-radius: var(--dva-radius); box-shadow: var(--dva-shadow); }
.devarsity-account__content .woocommerce-Address-title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.woocommerce-account .devarsity-account__content .woocommerce-Address-title::before,
.woocommerce-account .devarsity-account__content .woocommerce-Address-title::after,
.woocommerce-account .devarsity-account__content .addresses .title::before,
.woocommerce-account .devarsity-account__content .addresses .title::after { display: none; }
.devarsity-account__content .woocommerce-Address-title h2,
.devarsity-account__content .woocommerce-Address-title h3 { float: none; margin: 0; font-size: 17px; }
.devarsity-account__content .woocommerce-Address-title .edit { float: none; font-size: 14px; font-weight: 600; color: var(--dva-primary); }
.devarsity-account__content .woocommerce-Address address { font-style: normal; line-height: 1.6; color: var(--dva-muted); }
.devarsity-account__content > p { color: var(--dva-muted); }

/* Downloads, view order, other WooCommerce screens inside the content */
.devarsity-account__content .woocommerce-order-details,
.devarsity-account__content .woocommerce-customer-details,
.devarsity-account__content .woocommerce-MyAccount-downloads,
.devarsity-account__content .woocommerce-MyAccount-paymentMethods { padding: 20px 24px; margin: 0 0 20px; background: var(--dva-card); border: 1px solid var(--dva-border); border-radius: var(--dva-radius); box-shadow: var(--dva-shadow); }
.devarsity-account__content .woocommerce-order-details table.shop_table,
.devarsity-account__content .woocommerce-customer-details address { margin: 0; border-radius: 0; }
.devarsity-account__content mark { background: var(--dva-tint); color: var(--dva-primary-hover); padding: 0 4px; border-radius: 4px; }

/* ==========================================================================
   Login, registration and password reset (logged out)
   ========================================================================== */
.devarsity-auth { max-width: 460px; margin: 0 auto; color: var(--dva-text); }
.devarsity-auth--split { max-width: 980px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.devarsity-auth__card {
	padding: clamp(24px, 3vw, 36px);
	background: var(--dva-card);
	border: 1px solid var(--dva-border);
	border-radius: var(--dva-radius);
	box-shadow: var(--dva-shadow);
	min-width: 0;
}
.devarsity-auth__title { margin: 0; font-size: 24px; line-height: 1.25; letter-spacing: -0.02em; }
.devarsity-auth__intro { margin: 6px 0 24px; color: var(--dva-muted); font-size: 15px; }
.woocommerce-account .devarsity-auth form.login,
.woocommerce-account .devarsity-auth form.register { margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.devarsity-auth__submit-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 16px 12px; }
.devarsity-auth__submit-row > input[type="hidden"],
.woocommerce-account .woocommerce form .devarsity-auth__submit-row::before,
.woocommerce-account .woocommerce form .devarsity-auth__submit-row::after { display: none; }
.devarsity-auth__submit-row .woocommerce-form-login__rememberme { display: inline-flex !important; align-items: center; gap: 8px; margin: 0; font-size: 14px; font-weight: 500; color: var(--dva-text); }
.devarsity-auth__submit-row .woocommerce-form-login__rememberme input { width: 18px; height: 18px; margin: 0; accent-color: var(--dva-primary); }
.devarsity-auth__forgot { font-size: 14px; font-weight: 600; color: var(--dva-primary); text-decoration: none; justify-self: end; }
.devarsity-auth__forgot:hover { text-decoration: underline; }
.devarsity-auth__submit-row .devarsity-btn { grid-column: 1 / -1; min-height: 48px; }
.woocommerce-account .devarsity-auth .woocommerce-form-register .devarsity-btn { min-height: 48px; }
.devarsity-auth .woocommerce-privacy-policy-text p { margin: 0 0 16px; font-size: 13px; line-height: 1.55; color: var(--dva-muted); }
.devarsity-auth__note { font-size: 14px; color: var(--dva-muted); }
.devarsity-auth__switch { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--dva-border); text-align: center; font-size: 14px; color: var(--dva-muted); }
.devarsity-auth__switch a { font-weight: 600; color: var(--dva-primary); }
.devarsity-auth--split .devarsity-auth__switch { display: none; }

/* Notices above the login cards, lost / reset password */
body.woocommerce-account:not(.logged-in) .woocommerce > .woocommerce-notices-wrapper,
body.woocommerce-account:not(.logged-in) .woocommerce > .rtsb-notice { max-width: 980px; margin: 0 auto; }
.woocommerce-account .woocommerce-ResetPassword {
	max-width: 480px;
	margin: 0 auto;
	padding: clamp(24px, 3vw, 36px);
	background: var(--dva-card);
	border: 1px solid var(--dva-border);
	border-radius: var(--dva-radius);
	box-shadow: var(--dva-shadow);
}
.woocommerce-account .woocommerce:not(.dv-store .woocommerce) > .woocommerce-ResetPassword { margin: clamp(32px, 5vw, 56px) auto; }
.woocommerce-account .woocommerce-ResetPassword > p:first-child { margin-top: 0; color: var(--dva-muted); }
.woocommerce-account .woocommerce-ResetPassword .form-row-first,
.woocommerce-account .woocommerce-ResetPassword .form-row-last { float: none; width: 100%; }
.woocommerce-account .woocommerce .woocommerce-ResetPassword button.button {
	width: 100%;
	min-height: 48px;
	justify-content: center;
	border: 1px solid var(--dva-primary);
	border-radius: var(--dva-radius-sm);
	background: var(--dva-primary);
	color: #ffffff;
	font-size: 15px;
}
.woocommerce-account .woocommerce .woocommerce-ResetPassword button.button:hover { background: var(--dva-primary-hover); }
.woocommerce-account .woocommerce-ResetPassword .clear { display: none; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 959px) {
	.devarsity-account { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.devarsity-account-nav { position: static; padding: 8px; }
	.devarsity-account-nav__user { padding: 6px 6px 12px; }
	/* Compact menu (theme.js adds .is-enhanced; without JS the list stays open) */
	.devarsity-account-nav.is-enhanced .devarsity-account-nav__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		width: 100%;
		min-height: 48px;
		padding: 0 14px;
		border: 1px solid var(--dva-border);
		border-radius: var(--dva-radius-sm);
		background: var(--dva-bg);
		color: var(--dva-text);
		font: inherit;
		font-size: 15px;
		font-weight: 600;
		cursor: pointer;
	}
	.devarsity-account-nav.is-enhanced .devarsity-account-nav__toggle:focus-visible { outline: 2px solid var(--dva-primary); outline-offset: 2px; }
	.devarsity-account-nav.is-enhanced .devarsity-account-nav__toggle .dv-icon { transition: transform .2s ease; }
	.devarsity-account-nav.is-enhanced.is-open .devarsity-account-nav__toggle .dv-icon { transform: rotate(180deg); }
	.devarsity-account-nav.is-enhanced:not(.is-open) .devarsity-account-nav__list { display: none; }
	.devarsity-account-nav.is-enhanced.is-open .devarsity-account-nav__list { margin-top: 8px; }
}

@media (max-width: 767px) {
	.devarsity-auth--split { grid-template-columns: minmax(0, 1fr); max-width: 520px; }
	.devarsity-auth--split .devarsity-auth__switch { display: block; }
	.devarsity-dashboard__welcome { padding: 20px; }
	.devarsity-fields,
	.devarsity-account__content .woocommerce-address-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-account .woocommerce .devarsity-fields .form-row-first,
	.woocommerce-account .woocommerce .devarsity-fields .form-row-last,
	.woocommerce-account .woocommerce .woocommerce-address-fields__field-wrapper .form-row-first,
	.woocommerce-account .woocommerce .woocommerce-address-fields__field-wrapper .form-row-last { grid-column: 1 / -1; }
	.devarsity-panel,
	.devarsity-account__content .woocommerce-address-fields { padding: 20px 16px; }
	.devarsity-profile__actions .devarsity-btn,
	.devarsity-account__content .woocommerce-address-fields .button { width: 100%; }
	.devarsity-recent__item { grid-template-columns: minmax(0, 1fr) auto; padding: 14px 16px; }
	.devarsity-recent__item .devarsity-status { grid-column: 1; grid-row: 2; justify-self: start; }
	.devarsity-recent__total { grid-column: 2; grid-row: 1 / span 2; }
	.devarsity-course-card__media { aspect-ratio: 2 / 1; }
	.devarsity-course-card__title { min-height: 0; }

	/* Orders: one card per order */
	.devarsity-orders { background: transparent; border: 0; box-shadow: none; overflow: visible; }
	.woocommerce-account table.devarsity-orders__table,
	.woocommerce-account table.devarsity-orders__table tbody,
	.woocommerce-account table.devarsity-orders__table tr { display: block; width: 100%; }
	.woocommerce-account table.devarsity-orders__table thead { display: none; }
	.woocommerce-account table.devarsity-orders__table tbody tr {
		margin: 0 0 12px;
		padding: 8px 16px;
		background: var(--dva-card);
		border: 1px solid var(--dva-border);
		border-radius: var(--dva-radius);
		box-shadow: var(--dva-shadow);
	}
	.woocommerce-account table.devarsity-orders__table tbody th,
	.woocommerce-account table.devarsity-orders__table tbody td,
	.woocommerce-account table.devarsity-orders__table tbody tr:last-child th,
	.woocommerce-account table.devarsity-orders__table tbody tr:last-child td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 10px 0;
		border-bottom: 1px solid var(--dva-border);
		text-align: right !important;
		background: transparent !important;
	}
	.woocommerce-account table.devarsity-orders__table tbody tr > :last-child { border-bottom: 0 !important; }
	.woocommerce-account table.devarsity-orders__table tbody [data-title]::before {
		content: attr(data-title);
		float: none;
		flex: none;
		font-size: 13px;
		font-weight: 600;
		color: var(--dva-muted);
		text-align: left;
	}
	.woocommerce-account table.devarsity-orders__table .woocommerce-orders-table__cell-order-actions::before { display: none; }
	.woocommerce-account table.devarsity-orders__table .woocommerce-orders-table__cell-order-actions { padding-top: 12px; }
	.devarsity-orders__actions { width: 100%; }
	.woocommerce-account .woocommerce .devarsity-orders__actions .button { flex: 1; justify-content: center; min-height: 44px; }
	.woocommerce-account table.devarsity-orders__table .woocommerce-orders-table__cell-order-total { justify-content: flex-start; }
	.devarsity-orders__total { display: inline; margin-left: auto; }
	.devarsity-orders__items { display: inline; margin-left: 6px; }
}

@media (max-width: 400px) {
	.devarsity-auth__submit-row { grid-template-columns: minmax(0, 1fr); }
	.devarsity-auth__forgot { justify-self: start; }
	.devarsity-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.devarsity-stat { padding: 14px 16px; }
	.devarsity-stat__value { font-size: 24px; }
	.devarsity-stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
	.devarsity-course-card,
	.devarsity-account-nav__toggle .dv-icon,
	.devarsity-btn { transition: none; }
}
