/**
 * Kozaru Honbu - Seeded Frontend Page Shell
 *
 * Version: 1.0.0
 *
 * Theme-neutral layout rules for every Kozaru-generated frontend page.
 * Dashboard pages, public pages, login/logout, and nested portal pages all
 * receive a stable centred shell before their own module CSS takes over.
 */

body.kozaru-seeded-page {
	--kozaru-seeded-gutter: clamp(0.75rem, 2vw, 1.5rem);
	--kozaru-seeded-page-max: 1120px;
	--kozaru-seeded-wide-max: 1360px;
	--kozaru-seeded-compact-max: 960px;
	--kozaru-seeded-ink: var(--kozaru-ink, #111111);
	--kozaru-seeded-charcoal: var(--kozaru-charcoal, #2b2b2b);
	--kozaru-seeded-bone: var(--kozaru-bone, #f7f6f2);
	--kozaru-seeded-paper: var(--kozaru-paper, #ffffff);
	--kozaru-seeded-crimson: var(--kozaru-crimson, #c62828);
	--kozaru-seeded-line: rgba(17, 17, 17, .12);
	--kozaru-seeded-shadow: 0 18px 52px rgba(17, 17, 17, .08);
	--kozaru-seeded-radius: 24px;
	overflow-x: clip;
}

@supports not (overflow-x: clip) {
	body.kozaru-seeded-page {
		overflow-x: hidden;
	}
}

/*
 * First make common theme/page wrappers behave. This is scoped only to Kozaru
 * generated pages and keeps normal site pages untouched.
 */
body.kozaru-seeded-page .site-content,
body.kozaru-seeded-page .content-area,
body.kozaru-seeded-page .site-main,
body.kozaru-seeded-page #primary,
body.kozaru-seeded-page #main,
body.kozaru-seeded-page main,
body.kozaru-seeded-page .wp-site-blocks > main,
body.kozaru-seeded-page .site-main > .container,
body.kozaru-seeded-page .site-main > .wrap,
body.kozaru-seeded-page .content-area > .container,
body.kozaru-seeded-page .content-area > .wrap,
body.kozaru-seeded-page .page-content,
body.kozaru-seeded-page .page .entry-content,
body.kozaru-seeded-page .entry-content,
body.kozaru-seeded-page .wp-block-post-content,
body.kozaru-seeded-page .is-layout-flow,
body.kozaru-seeded-page .is-layout-constrained,
body.kozaru-seeded-page .kozaru-section,
body.kozaru-seeded-page .kozaru-content-wrap,
body.kozaru-seeded-page .kozaru-container,
body.kozaru-seeded-page .kozaru-container--wide {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	left: auto !important;
	right: auto !important;
	transform: none !important;
}

body.kozaru-seeded-page .entry-content,
body.kozaru-seeded-page .wp-block-post-content,
body.kozaru-seeded-page .is-layout-flow,
body.kozaru-seeded-page .is-layout-constrained {
	min-width: 0 !important;
}

body.kozaru-seeded-page .kozaru-section {
	padding-top: clamp(0.5rem, 1vw, 1rem) !important;
	padding-bottom: clamp(1.5rem, 3vw, 3rem) !important;
}

/*
 * Non-cockpit generated pages get a normal centred product canvas.
 * Staff/student cockpits remain controlled by their dedicated dashboard modules.
 */
body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .entry-content > .kozaru-frontend-wrap,
body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .wp-block-post-content > .kozaru-frontend-wrap,
body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .entry-content > .kozaru-registration-box,
body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .wp-block-post-content > .kozaru-registration-box,
body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .entry-content > .kozaru-calendar-shortcode,
body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .wp-block-post-content > .kozaru-calendar-shortcode {
	box-sizing: border-box !important;
	position: static !important;
	float: none !important;
	clear: both !important;
	display: block !important;
	left: auto !important;
	right: auto !important;
	transform: none !important;
	width: min(calc(100vw - (var(--kozaru-seeded-gutter) * 2)), var(--kozaru-seeded-page-max)) !important;
	max-width: min(calc(100vw - (var(--kozaru-seeded-gutter) * 2)), var(--kozaru-seeded-page-max)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: clamp(0.75rem, 1.6vw, 1.25rem) !important;
	margin-bottom: clamp(2rem, 4vw, 4rem) !important;
}

/* Public display pages are wider; form/auth pages are tighter. */
body.kozaru-seeded-page-calendar:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .kozaru-calendar-shortcode,
body.kozaru-seeded-page-instructors:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .kozaru-frontend-wrap,
body.kozaru-seeded-page-registration:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .kozaru-registration-box {
	width: min(calc(100vw - (var(--kozaru-seeded-gutter) * 2)), var(--kozaru-seeded-wide-max)) !important;
	max-width: min(calc(100vw - (var(--kozaru-seeded-gutter) * 2)), var(--kozaru-seeded-wide-max)) !important;
}

body.kozaru-seeded-page-login .kozaru-login-wrap,
body.kozaru-seeded-page-logout .kozaru-frontend-wrap,
body.kozaru-seeded-page-trial-registration .kozaru-registration-box {
	width: min(calc(100vw - (var(--kozaru-seeded-gutter) * 2)), var(--kozaru-seeded-compact-max)) !important;
	max-width: min(calc(100vw - (var(--kozaru-seeded-gutter) * 2)), var(--kozaru-seeded-compact-max)) !important;
}

/*
 * Login/logout should feel like Kozaru product screens, not forgotten WordPress
 * utility pages hanging off the side of a theme wrapper.
 */
body.kozaru-seeded-page-login .kozaru-login-wrap {
	align-items: stretch;
	gap: clamp(1rem, 2vw, 1.5rem);
}

body.kozaru-seeded-page-login .kozaru-login-card,
body.kozaru-seeded-page-login .kozaru-login-form-card,
body.kozaru-seeded-page-logout .kozaru-frontend-card,
body.kozaru-seeded-page-logout .kozaru-command-hero {
	border-radius: var(--kozaru-seeded-radius);
	box-shadow: var(--kozaru-seeded-shadow);
}

body.kozaru-seeded-page-login .kozaru-login-card,
body.kozaru-seeded-page-logout .kozaru-command-hero {
	background:
		linear-gradient(135deg, rgba(17, 17, 17, .96), rgba(43, 43, 43, .9)),
		radial-gradient(circle at 100% 0%, rgba(198, 40, 40, .28), transparent 38%);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, .16);
}

body.kozaru-seeded-page-login .kozaru-login-card h2,
body.kozaru-seeded-page-logout .kozaru-command-hero h2 {
	color: #fff;
}

body.kozaru-seeded-page-login .kozaru-login-form-card form,
body.kozaru-seeded-page-login .kozaru-login-form-card p,
body.kozaru-seeded-page-login .kozaru-login-form-card label {
	max-width: 100%;
}

body.kozaru-seeded-page-login .kozaru-login-form-card input[type="text"],
body.kozaru-seeded-page-login .kozaru-login-form-card input[type="password"] {
	width: 100%;
}

/* Dashboard pages get wrapper neutralisation only; their own modules size the cockpit. */
body.kozaru-frontend-staff-app-page.kozaru-seeded-page .kozaru-frontend-wrap.kozaru-staff-interface,
body.kozaru-frontend-student-app-page.kozaru-seeded-page .kozaru-frontend-wrap.kozaru-student-interface {
	position: static !important;
	left: auto !important;
	right: auto !important;
	transform: none !important;
	float: none !important;
	clear: both !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

@media (max-width: 782px) {
	body.kozaru-seeded-page {
		--kozaru-seeded-gutter: 0.75rem;
	}

	body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .entry-content > .kozaru-frontend-wrap,
	body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .wp-block-post-content > .kozaru-frontend-wrap,
	body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .entry-content > .kozaru-registration-box,
	body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .wp-block-post-content > .kozaru-registration-box,
	body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .entry-content > .kozaru-calendar-shortcode,
	body.kozaru-seeded-page:not(.kozaru-frontend-staff-app-page):not(.kozaru-frontend-student-app-page) .wp-block-post-content > .kozaru-calendar-shortcode {
		width: calc(100vw - (var(--kozaru-seeded-gutter) * 2)) !important;
		max-width: calc(100vw - (var(--kozaru-seeded-gutter) * 2)) !important;
		margin-top: 0.75rem !important;
	}

	body.kozaru-seeded-page-login .kozaru-login-wrap {
		display: grid;
		grid-template-columns: 1fr;
		gap: 0.875rem;
	}
}


/* v0.3.3.15: bundled branding on auth pages. */
.kozaru-auth-brand {
	margin: 0 0 1rem;
}

.kozaru-auth-brand img {
	display: block;
	max-width: min(100%, 420px);
	height: auto;
}
