/* CodeStack Academy - proprietary frontend (FASE 5.1). Namespaced under
   .csac-academy-*, .csac-course-*, .csac-lesson-* (section 25) - never a
   bare element selector, so this can never leak into WooCommerce/WordPress
   pages outside the Academy shell. */

.csac-academy {
	--csac-bg: #FFFFFF;
	--csac-surface: #FFFFFF;
	--csac-text: #0F172A;
	--csac-text-secondary: #64748B;
	--csac-border: #E2E8F0;
	--csac-accent: #2075B1;
	--csac-accent-hover: #15578A;
	--csac-accent-tint: #DFEFF5;
	--csac-accent-tint-border: #B8DCEA;
	--csac-success: #16A34A;
	--csac-warning: #F59E0B;
	--csac-danger: #DC2626;
	--csac-radius: 14px;
	--csac-radius-sm: 10px;
	--csac-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 1px rgba(15, 23, 42, 0.03);

	font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--csac-text);
	background: var(--csac-bg);
	min-height: 100vh;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

.csac-academy * { box-sizing: border-box; }

/* FASE 5.2B: was `.csac-academy a` (specificity 0,1,1) - that silently beat
   `.csac-btn-primary { color: #fff }` (0,1,0) regardless of source order,
   so every <a class="csac-btn csac-btn-primary"> rendered white-on-blue as
   BLUE-on-blue text (illegible) in every real browser - invisible to any
   markup/HTTP-only test since the HTML itself was always correct. Excluding
   .csac-btn here is the actual, minimal fix: plain links keep the accent
   color, buttons fully control their own via .csac-btn-primary/-secondary/
   -danger without a specificity fight. */
.csac-academy a:not(.csac-btn) { color: var(--csac-accent); }
.csac-academy a:focus-visible,
.csac-academy button:focus-visible,
.csac-academy input:focus-visible,
.csac-academy [tabindex]:focus-visible {
	outline: 2px solid var(--csac-accent);
	outline-offset: 2px;
}

/* ---------- Shell layout ---------- */

.csac-academy-shell { min-height: 100vh; display: flex; flex-direction: column; }

.csac-academy-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	height: 64px;
	padding: 0 24px;
	background: var(--csac-surface);
	border-bottom: 1px solid var(--csac-border);
	position: sticky;
	top: 0;
	z-index: 40;
}

.csac-academy-topbar__brand { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 16px; text-decoration: none; color: var(--csac-text); }
.csac-academy-topbar__brand img { height: 28px; width: auto; display: block; }

.csac-academy-topbar__menu-toggle {
	display: none;
	background: none;
	border: 1px solid var(--csac-border);
	border-radius: var(--csac-radius-sm);
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.csac-academy-topbar__right { display: flex; align-items: center; gap: 18px; }
.csac-academy-topbar__user { font-size: 14px; color: var(--csac-text-secondary); }
.csac-academy-topbar__user strong { color: var(--csac-text); font-weight: 600; }
.csac-academy-topbar__logout {
	font-size: 14px;
	font-weight: 500;
	color: var(--csac-text-secondary);
	text-decoration: none;
	padding: 8px 12px;
	border-radius: var(--csac-radius-sm);
}
.csac-academy-topbar__logout:hover { background: var(--csac-bg); color: var(--csac-text); }

.csac-academy-body { display: flex; flex: 1; min-height: 0; align-items: flex-start; }

.csac-academy-sidebar {
	width: 256px;
	flex-shrink: 0;
	background: var(--csac-surface);
	border-right: 1px solid var(--csac-border);
	padding: 20px 12px;
	/* Stays in view while .csac-academy-content scrolls - 64px matches
	   .csac-academy-topbar's own height, so the sidebar sticks right below
	   it instead of under/over it. Overridden back to `fixed` (full drawer
	   behavior) by the max-width:900px media query below. */
	position: sticky;
	top: 64px;
	max-height: calc(100vh - 64px);
	overflow-y: auto;
}

.csac-academy-nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.csac-academy-nav a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border-radius: var(--csac-radius-sm);
	color: var(--csac-text-secondary);
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
}
.csac-academy-nav a:hover { background: var(--csac-bg); color: var(--csac-text); }
.csac-academy-nav a[aria-current="page"] { background: var(--csac-accent-tint); color: var(--csac-accent); }
.csac-academy-nav svg { flex-shrink: 0; width: 18px; height: 18px; }

.csac-academy-content { flex: 1; min-width: 0; padding: 32px 24px 64px; }
.csac-academy-content__inner { max-width: 960px; margin: 0 auto; }

.csac-academy-sidebar-overlay { display: none; }

/* ---------- Typography helpers ---------- */

.csac-h1 { font-size: 26px; font-weight: 700; margin: 0 0 4px; letter-spacing: -0.01em; }
.csac-subtitle { color: var(--csac-text-secondary); font-size: 15px; margin: 0 0 28px; }
.csac-section-title { font-size: 18px; font-weight: 600; margin: 0 0 14px; }

/* ---------- Card ---------- */

.csac-card {
	background: var(--csac-surface);
	border: 1px solid var(--csac-border);
	border-radius: var(--csac-radius);
	box-shadow: var(--csac-shadow);
	padding: 24px;
}
.csac-card + .csac-card { margin-top: 20px; }

/* ---------- Buttons ---------- */

.csac-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	padding: 11px 20px;
	border-radius: var(--csac-radius-sm);
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	line-height: 1.2;
	min-height: 44px;
}
.csac-btn-primary { background: var(--csac-accent); color: #fff; }
.csac-btn-primary:hover { background: var(--csac-accent-hover); color: #fff; }
.csac-btn-secondary { background: var(--csac-surface); color: var(--csac-text); border-color: var(--csac-border); }
.csac-btn-secondary:hover { background: var(--csac-bg); }
.csac-btn-danger { background: var(--csac-surface); color: var(--csac-danger); border-color: var(--csac-border); }
.csac-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.csac-btn-block { width: 100%; }

/* ---------- Forms ---------- */

.csac-field { margin-bottom: 18px; }
.csac-field label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 6px; }
.csac-field input {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--csac-border);
	border-radius: var(--csac-radius-sm);
	font-size: 15px;
	background: var(--csac-surface);
	color: var(--csac-text);
	min-height: 44px;
}
.csac-field input:focus { border-color: var(--csac-accent); }
.csac-field-hint { font-size: 13px; color: var(--csac-text-secondary); margin-top: 6px; }

.csac-alert { border-radius: var(--csac-radius-sm); padding: 12px 16px; font-size: 14px; margin-bottom: 20px; }
.csac-alert-danger { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }
.csac-alert-success { background: #F0FDF4; color: #166534; border: 1px solid #BBF7D0; }
.csac-alert-warning { background: #FFFBEB; color: #92400E; border: 1px solid #FDE68A; }

/* ---------- Progress ---------- */

.csac-progress { height: 8px; border-radius: 999px; background: var(--csac-border); overflow: hidden; }
.csac-progress__fill { height: 100%; background: var(--csac-accent); border-radius: 999px; transition: width .3s ease; }
.csac-progress-row { display: flex; align-items: center; justify-content: space-between; font-size: 13px; color: var(--csac-text-secondary); margin-bottom: 8px; }

/* ---------- Course grid / cards ---------- */

.csac-course-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 20px; }

.csac-course-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.csac-course-card__thumb { aspect-ratio: 16/9; background: var(--csac-bg); overflow: hidden; }
.csac-course-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.csac-course-card__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.csac-course-card__title { font-size: 16px; font-weight: 600; margin: 0; }
.csac-course-card__meta { font-size: 13px; color: var(--csac-text-secondary); }
.csac-course-card__cta { margin-top: auto; }

/* ---------- Curriculum ---------- */

.csac-curriculum { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.csac-curriculum-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	border-radius: var(--csac-radius-sm);
	border: 1px solid transparent;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	color: var(--csac-text);
}
.csac-curriculum-item__icon {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-size: 13px;
}
.csac-curriculum-item--completed .csac-curriculum-item__icon { background: #F0FDF4; color: var(--csac-success); }
.csac-curriculum-item--available { background: var(--csac-accent-tint); border-color: var(--csac-accent-tint-border); }
.csac-curriculum-item--available .csac-curriculum-item__icon { background: var(--csac-accent); color: #fff; }
.csac-curriculum-item--current { background: var(--csac-accent-tint); border-color: var(--csac-accent); }
.csac-curriculum-item--locked { color: var(--csac-text-secondary); cursor: default; }
.csac-curriculum-item--locked .csac-curriculum-item__icon { background: var(--csac-border); color: var(--csac-text-secondary); }

/* ---------- Lesson experience ---------- */

.csac-lesson-topbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; gap: 12px; flex-wrap: wrap; }
.csac-lesson-back {
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	color: var(--csac-text-secondary);
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 16px 9px 12px;
	border-radius: 999px;
	border: 1px solid var(--csac-border);
	background: var(--csac-surface);
}
.csac-lesson-back:hover { background: var(--csac-bg); color: var(--csac-text); border-color: var(--csac-text-secondary); }
.csac-lesson-back svg { width: 16px; height: 16px; flex-shrink: 0; }
.csac-lesson-progress-label { font-size: 13px; font-weight: 600; color: var(--csac-text-secondary); }

.csac-lesson-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }

.csac-video {
	position: relative;
	padding-top: 56.25%;
	background: #000;
	border-radius: var(--csac-radius);
	overflow: hidden;
}
.csac-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: none;
}
.csac-video-denied {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	text-align: center;
	color: #fff;
	background: #0F172A;
}

.csac-lesson-title { font-size: 20px; font-weight: 700; margin: 22px 0 8px; }
.csac-lesson-description { color: var(--csac-text-secondary); font-size: 14px; margin: 0 0 24px; }
.csac-watch-note { color: var(--csac-text-secondary); font-size: 14px; margin: 0 0 12px; }

/* "I miei libri": portrait covers on top of the shared course-card grid. */
.csac-book-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.csac-book-card__cover { aspect-ratio: 2 / 3; display: flex; align-items: center; justify-content: center; background: var(--csac-bg); border-radius: var(--csac-radius) var(--csac-radius) 0 0; color: var(--csac-text-secondary); overflow: hidden; }
.csac-book-card__cover img { width: 100%; height: 100%; object-fit: contain; display: block; }
.csac-book-card__cover svg { width: 40px; height: 40px; }

.csac-lesson-sidebar-title { font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--csac-text-secondary); margin: 0 0 14px; }

.csac-lesson-mobile-curriculum { display: none; }

/* ---------- Consultation / Device panels ---------- */

.csac-status-list { display: flex; flex-direction: column; gap: 10px; margin: 0 0 20px; padding: 0; list-style: none; }
.csac-status-list li { display: flex; justify-content: space-between; font-size: 14px; padding: 10px 0; border-bottom: 1px solid var(--csac-border); }
.csac-status-list li:last-child { border-bottom: none; }
.csac-status-list dt, .csac-status-list .csac-status-label { color: var(--csac-text-secondary); }
.csac-status-list dd, .csac-status-list .csac-status-value { font-weight: 600; margin: 0; }

.csac-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.csac-badge-success { background: #F0FDF4; color: var(--csac-success); }
.csac-badge-warning { background: #FFFBEB; color: #92400E; }
.csac-badge-neutral { background: var(--csac-bg); color: var(--csac-text-secondary); }

/* ---------- Login page ---------- */

.csac-login { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px; background: var(--csac-bg); }
.csac-login__card { width: 100%; max-width: 400px; background: var(--csac-surface); border-radius: var(--csac-radius); box-shadow: 0 1px 3px rgba(15,23,42,.08); padding: 40px 32px; }
.csac-login__brand { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-bottom: 28px; text-align: center; }
.csac-login__brand img { height: 36px; }
.csac-login__brand strong { font-size: 18px; font-weight: 700; }
.csac-login__title { font-size: 16px; font-weight: 600; text-align: center; margin: 0 0 24px; }
.csac-login__footer { text-align: center; margin-top: 18px; font-size: 13px; }

/* ---------- Reused FASE 4.2 device-change widget (unstyled markup from
   DeviceChangeFormRenderer, reused as-is per section 16 - only CSS hooks
   added here, no PHP/business logic touched) ---------- */

.csac-academy .csac-device-change-notice { font-size: 14px; padding: 10px 14px; border-radius: var(--csac-radius-sm); background: var(--csac-accent-tint); color: var(--csac-accent); margin: 0 0 16px; }
.csac-academy .csac-device-cooldown { font-size: 14px; color: var(--csac-text-secondary); margin-top: 16px; }
.csac-academy .csac-device-change-form { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--csac-border); }
.csac-academy .csac-device-change-form p { font-size: 14px; color: var(--csac-text-secondary); margin: 0 0 12px; }
.csac-academy .csac-device-change-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 600;
	padding: 11px 20px;
	border-radius: var(--csac-radius-sm);
	border: 1px solid var(--csac-border);
	background: var(--csac-surface);
	color: var(--csac-danger);
	cursor: pointer;
	min-height: 44px;
}
.csac-academy .csac-device-change-submit:hover { background: var(--csac-bg); }

/* ---------- WooCommerce "Il mio account" reskin (FASE post-6.3 hotfix) ----
   AccountShellRouter wraps WooCommerce's native [woocommerce_my_account]
   output (dashboard/orders/addresses/edit-account/payment-methods) inside
   this shell. WooCommerce's own frontend stylesheets are never enqueued on
   this route (verified live: only academy.css, plus wc-blocks.css only
   when a Blocks-based notice is present) - so every WooCommerce/
   woocommerce-* classname below is styled here from scratch, never
   overriding a competing WC stylesheet. Scoped under .csac-account so it
   can never leak outside this one wrapper. */

.csac-academy .csac-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	border-bottom: 1px solid var(--csac-border);
}
.csac-academy .csac-account .woocommerce-MyAccount-navigation-link a {
	display: inline-block;
	padding: 10px 14px;
	margin-bottom: -1px;
	border-bottom: 2px solid transparent;
	color: var(--csac-text-secondary);
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
}
.csac-academy .csac-account .woocommerce-MyAccount-navigation-link a:hover { color: var(--csac-text); }
.csac-academy .csac-account .woocommerce-MyAccount-navigation-link.is-active a {
	color: var(--csac-accent);
	border-bottom-color: var(--csac-accent);
	font-weight: 600;
}
.csac-academy .csac-account .woocommerce-MyAccount-navigation-link--customer-logout { display: none; }

.csac-academy .csac-account .woocommerce-MyAccount-content,
.csac-academy .csac-account .woocommerce > form,
.csac-academy .csac-account .woocommerce-order-details,
.csac-academy .csac-account .woocommerce-customer-details,
.csac-academy .csac-account .woocommerce-bacs-bank-details,
.csac-academy .csac-account .u-columns {
	background: var(--csac-surface);
	border: 1px solid var(--csac-border);
	border-radius: var(--csac-radius);
	box-shadow: var(--csac-shadow);
	padding: 24px;
}
.csac-academy .csac-account .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.csac-academy .csac-account .woocommerce > form + form,
.csac-academy .csac-account .woocommerce-order-details + .woocommerce-customer-details,
.csac-academy .csac-account p + .woocommerce-bacs-bank-details,
.csac-academy .csac-account .woocommerce-bacs-bank-details + .csac-thankyou { margin-top: 20px; }

/* BACS (bank transfer) payment instructions block - native WooCommerce
   markup shown only for that gateway, distinct from everything above. */
.csac-academy .csac-account .wc-bacs-bank-details-heading { font-size: 18px; font-weight: 600; margin: 0 0 16px; color: var(--csac-text); }
.csac-academy .csac-account .wc-bacs-bank-details-account-name {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--csac-text-secondary);
	margin: 0 0 12px;
}
.csac-academy .csac-account ul.bacs_details {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.csac-academy .csac-account ul.bacs_details li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 14px;
	color: var(--csac-text-secondary);
	padding: 8px 0;
	border-bottom: 1px solid var(--csac-border);
}
.csac-academy .csac-account ul.bacs_details li:last-child { border-bottom: none; }
.csac-academy .csac-account ul.bacs_details li strong { color: var(--csac-text); font-weight: 600; }

/* Order-received "order overview" summary list (order number/date/email/
   total/payment method) - native WooCommerce markup with zero styling of
   its own, distinct from .shop_table/.woocommerce-MyAccount-* below. */
.csac-academy .csac-account .woocommerce-order-overview {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.csac-academy .csac-account .woocommerce-order-overview li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 14px;
	color: var(--csac-text-secondary);
	padding: 10px 0;
	border-bottom: 1px solid var(--csac-border);
}
.csac-academy .csac-account .woocommerce-order-overview li:last-child { border-bottom: none; }
.csac-academy .csac-account .woocommerce-order-overview li strong { color: var(--csac-text); font-weight: 600; }

.csac-academy .csac-account address { font-style: normal; font-size: 14px; color: var(--csac-text); line-height: 1.7; }
.csac-academy .csac-account .woocommerce-customer-details--email { color: var(--csac-text-secondary); margin: 4px 0 0; }

.csac-academy .csac-account p { font-size: 14px; color: var(--csac-text-secondary); line-height: 1.6; }
/* WooCommerce hardcodes a "Hello X (not X? Log out)" + dashboard-links intro
   directly in myaccount/dashboard.php (not an unhookable action) - the
   Academy topbar/sidebar already covers both (greeting + logout + nav), so
   it's pure redundant clutter here. Hides only on the dashboard endpoint:
   every other endpoint (orders/addresses/edit-account) starts with a table,
   address cards, or a form, never two leading <p> siblings. */
.csac-academy .csac-account .woocommerce-MyAccount-content > p:nth-of-type(1),
.csac-academy .csac-account .woocommerce-MyAccount-content > p:nth-of-type(2) { display: none; }
.csac-academy .csac-account h2 { font-size: 18px; font-weight: 600; margin: 0 0 16px; color: var(--csac-text); }
.csac-academy .csac-account fieldset { border: none; padding: 20px 0 0; margin: 20px 0 0; border-top: 1px solid var(--csac-border); }
.csac-academy .csac-account fieldset legend { font-size: 15px; font-weight: 600; padding: 0; margin-bottom: 4px; color: var(--csac-text); }
.csac-academy .csac-account .clear { display: none; }

/* Notices - classic (.woocommerce-message/-error/-info, the OLDER
   .woocommerce-notice.woocommerce-notice--success/--error/--info variant
   used on order-received's "thank you" text), and Blocks
   (.wc-block-components-notice-banner.is-*) notice markup. */
.csac-academy .csac-account .woocommerce-message,
.csac-academy .csac-account .woocommerce-info,
.csac-academy .csac-account .woocommerce-notice--info,
.csac-academy .csac-account .wc-block-components-notice-banner.is-info { background: var(--csac-accent-tint); color: var(--csac-accent-hover); border: 1px solid var(--csac-accent-tint-border); }
.csac-academy .csac-account .woocommerce-message,
.csac-academy .csac-account .woocommerce-notice--success,
.csac-academy .csac-account .wc-block-components-notice-banner.is-success { background: #F0FDF4; color: #166534; border: 1px solid #BBF7D0; }
.csac-academy .csac-account .woocommerce-error,
.csac-academy .csac-account .woocommerce-notice--error,
.csac-academy .csac-account .wc-block-components-notice-banner.is-error { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }
.csac-academy .csac-account .woocommerce-message,
.csac-academy .csac-account .woocommerce-error,
.csac-academy .csac-account .woocommerce-info,
.csac-academy .csac-account .woocommerce-notice,
.csac-academy .csac-account .wc-block-components-notice-banner {
	list-style: none;
	border-radius: var(--csac-radius-sm);
	padding: 12px 16px;
	margin: 0 0 20px;
	font-size: 14px;
	display: flex;
	align-items: center;
	gap: 10px;
}
.csac-academy .csac-account .wc-block-components-notice-banner svg { width: 18px; height: 18px; flex-shrink: 0; fill: currentColor; }
.csac-academy .csac-account .woocommerce-message .button,
.csac-academy .csac-account .wc-block-components-notice-banner .button { margin-left: auto; }

/* Orders table */
.csac-academy .csac-account table.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.csac-academy .csac-account table.shop_table th {
	text-align: left;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--csac-text-secondary);
	padding: 0 12px 10px;
	border-bottom: 1px solid var(--csac-border);
}
.csac-academy .csac-account table.shop_table td {
	padding: 14px 12px;
	border-bottom: 1px solid var(--csac-border);
	color: var(--csac-text);
}
.csac-academy .csac-account table.shop_table tr:last-child td { border-bottom: none; }
.csac-academy .csac-account .woocommerce-orders-table__cell-order-status { text-transform: capitalize; }

.csac-academy .csac-account .woocommerce-Pagination { display: flex; gap: 8px; margin-top: 16px; }

/* Addresses */
.csac-academy .csac-account .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}
.csac-academy .csac-account .woocommerce-Address-title h3 { font-size: 15px; font-weight: 600; margin: 0; }
.csac-academy .csac-account address { font-style: normal; line-height: 1.7; }

/* Forms */
.csac-academy .csac-account .form-row { margin: 0 0 18px; }
.csac-academy .csac-account .form-row-first,
.csac-academy .csac-account .form-row-last { display: inline-block; width: calc(50% - 8px); vertical-align: top; }
.csac-academy .csac-account .form-row-first { margin-right: 16px; }
.csac-academy .csac-account label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 6px; color: var(--csac-text); }
.csac-academy .csac-account .required { color: var(--csac-danger); text-decoration: none; }
.csac-academy .csac-account input.input-text,
.csac-academy .csac-account select,
.csac-academy .csac-account textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--csac-border);
	border-radius: var(--csac-radius-sm);
	font-size: 15px;
	background: var(--csac-surface);
	color: var(--csac-text);
	min-height: 44px;
	font-family: inherit;
}
.csac-academy .csac-account input.input-text:focus,
.csac-academy .csac-account select:focus,
.csac-academy .csac-account textarea:focus { border-color: var(--csac-accent); outline: none; }

/* Buttons (order actions, save address/account, pagination) */
.csac-academy .csac-account .button,
.csac-academy .csac-account button[type="submit"],
.csac-academy .csac-account input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	padding: 11px 20px;
	border-radius: var(--csac-radius-sm);
	border: 1px solid var(--csac-border);
	background: var(--csac-surface);
	color: var(--csac-text);
	cursor: pointer;
	text-decoration: none;
	line-height: 1.2;
	min-height: 44px;
}
.csac-academy .csac-account .button:hover,
.csac-academy .csac-account button[type="submit"]:hover,
.csac-academy .csac-account input[type="submit"]:hover { background: var(--csac-bg); }
.csac-academy .csac-account .button.view,
.csac-academy .csac-account .woocommerce-Button:not(.woocommerce-Button--previous):not(.woocommerce-Button--next),
.csac-academy .csac-account button[type="submit"],
.csac-academy .csac-account input[type="submit"] { background: var(--csac-accent); border-color: var(--csac-accent); color: #fff; }
.csac-academy .csac-account .button.view:hover,
.csac-academy .csac-account button[type="submit"]:hover,
.csac-academy .csac-account input[type="submit"]:hover { background: var(--csac-accent-hover); border-color: var(--csac-accent-hover); color: #fff; }
.csac-academy .csac-account .button.cancel { background: var(--csac-surface); border-color: var(--csac-border); color: var(--csac-text); }

/* Payment methods */
.csac-academy .csac-account table.woocommerce-MyAccount-paymentMethods .default-payment-method { color: var(--csac-success); font-weight: 600; }

/* ---------- Responsive ---------- */

@media (max-width: 900px) {
	.csac-academy-topbar__menu-toggle { display: inline-flex; }

	.csac-academy-sidebar {
		position: fixed;
		top: 64px;
		bottom: 0;
		left: 0;
		width: 84%;
		max-width: 300px;
		transform: translateX(-100%);
		transition: transform .2s ease;
		z-index: 50;
		overflow-y: auto;
	}
	.csac-academy-sidebar.is-open { transform: translateX(0); box-shadow: 2px 0 12px rgba(15,23,42,.12); }

	.csac-academy-sidebar-overlay {
		display: none;
		position: fixed;
		inset: 64px 0 0 0;
		background: rgba(15,23,42,.35);
		z-index: 45;
	}
	.csac-academy-sidebar-overlay.is-open { display: block; }

	.csac-academy-content { padding: 20px 16px 48px; }

	.csac-lesson-layout { grid-template-columns: 1fr; }
	.csac-lesson-sidebar { display: none; }
	.csac-lesson-mobile-curriculum { display: block; margin-top: 24px; }

	.csac-academy .csac-account .u-columns { grid-template-columns: 1fr; }
	.csac-academy .csac-account .form-row-first,
	.csac-academy .csac-account .form-row-last { display: block; width: 100%; margin-right: 0; }

	.csac-academy .csac-account table.shop_table thead { display: none; }
	.csac-academy .csac-account table.shop_table,
	.csac-academy .csac-account table.shop_table tbody,
	.csac-academy .csac-account table.shop_table tr,
	.csac-academy .csac-account table.shop_table td { display: block; width: 100%; }
	.csac-academy .csac-account table.shop_table tr { padding: 12px 0; border-bottom: 1px solid var(--csac-border); }
	.csac-academy .csac-account table.shop_table td {
		display: flex;
		justify-content: space-between;
		gap: 12px;
		padding: 6px 0;
		border-bottom: none;
		text-align: right;
	}
	.csac-academy .csac-account table.shop_table td::before {
		content: attr(data-title);
		font-weight: 600;
		color: var(--csac-text-secondary);
		text-align: left;
	}
	.csac-lesson-mobile-curriculum summary {
		cursor: pointer;
		font-weight: 600;
		padding: 14px 16px;
		border: 1px solid var(--csac-border);
		border-radius: var(--csac-radius-sm);
		background: var(--csac-surface);
		list-style: none;
	}
	.csac-lesson-mobile-curriculum summary::-webkit-details-marker { display: none; }
	.csac-lesson-mobile-curriculum[open] summary { border-radius: var(--csac-radius-sm) var(--csac-radius-sm) 0 0; }
	.csac-lesson-mobile-curriculum .csac-curriculum { border: 1px solid var(--csac-border); border-top: none; padding: 10px; border-radius: 0 0 var(--csac-radius-sm) var(--csac-radius-sm); }
}

@media (max-width: 480px) {
	.csac-academy-topbar__user { display: none; }
	.csac-course-grid { grid-template-columns: 1fr; }
	.csac-login__card { padding: 32px 22px; }
}
