.maparc-account {
	--commons-border: #dcdcde;
	--commons-surface: #ffffff;
	--commons-subtle: #f6f7f7;
	--commons-text: #1d2327;
	--commons-muted: #646970;
	--commons-accent: #3858e9;
	color: var(--commons-text);
	font-size: 16px;
	line-height: 1.5;
}

.maparc-account * {
	box-sizing: border-box;
}

.maparc-account__header {
	align-items: center;
	border-bottom: 1px solid var(--commons-border);
	display: flex;
	justify-content: space-between;
	margin-bottom: 24px;
	padding-bottom: 18px;
}

.maparc-account__eyebrow,
.maparc-account__intro,
.maparc-account__muted {
	color: var(--commons-muted);
}

.maparc-account__eyebrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	margin: 0 0 4px;
	text-transform: uppercase;
}

.maparc-account__title {
	font-size: clamp(1.6rem, 4vw, 2.2rem);
	margin: 0;
}

.maparc-account__intro {
	margin: 6px 0 0;
}

.maparc-account__layout {
	display: grid;
	gap: 28px;
	grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
}

.maparc-account__nav {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.maparc-account__nav-link {
	border: 1px solid transparent;
	border-radius: 8px;
	color: var(--commons-text);
	display: block;
	padding: 10px 12px;
	text-decoration: none;
}

.maparc-account__nav-link:hover,
.maparc-account__nav-link:focus {
	background: var(--commons-subtle);
	color: var(--commons-text);
}

.maparc-account__nav-link.is-active {
	background: var(--commons-subtle);
	border-color: var(--commons-border);
	font-weight: 600;
}

.maparc-account__content {
	min-width: 0;
}

.maparc-account__section > h3:first-child {
	margin-top: 0;
}

.maparc-account__metrics {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 20px 0 28px;
}

.maparc-account__metric {
	background: var(--commons-surface);
	border: 1px solid var(--commons-border);
	border-radius: 10px;
	padding: 16px;
}

.maparc-account__metric span,
.maparc-account__metric strong {
	display: block;
}

.maparc-account__metric span {
	color: var(--commons-muted);
	font-size: 14px;
}

.maparc-account__metric strong {
	font-size: 1.5rem;
	margin-top: 4px;
}

.maparc-account__product-list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.maparc-account__product-list li {
	align-items: center;
	border-bottom: 1px solid var(--commons-border);
	display: flex;
	gap: 12px;
	justify-content: space-between;
	padding: 12px 0;
}

.maparc-account__product-list span {
	color: var(--commons-muted);
	font-size: 14px;
}

.maparc-account__notice,
.maparc-account--signed-out {
	background: var(--commons-subtle);
	border: 1px solid var(--commons-border);
	border-radius: 10px;
	padding: 18px;
}

.maparc-account__notice p {
	margin-bottom: 0;
}

.maparc-account__button {
	background: var(--commons-accent);
	border-radius: 6px;
	color: #fff;
	display: inline-block;
	padding: 9px 14px;
	text-decoration: none;
}

.maparc-account__button:hover,
.maparc-account__button:focus {
	color: #fff;
	opacity: .9;
}

@media (max-width: 720px) {
	.maparc-account__layout {
		grid-template-columns: 1fr;
	}

	.maparc-account__nav {
		flex-direction: row;
		flex-wrap: wrap;
	}

	.maparc-account__metrics {
		grid-template-columns: 1fr;
	}
}

.maparc-account__button--secondary{background:transparent;border:1px solid var(--commons-border);color:var(--commons-text);white-space:nowrap}.maparc-account__button--secondary:hover,.maparc-account__button--secondary:focus{background:var(--commons-subtle);color:var(--commons-text)}.maparc-account__cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:20px}.maparc-account__card{background:var(--commons-surface);border:1px solid var(--commons-border);border-radius:10px;display:block;padding:18px;text-decoration:none}.maparc-account__card:hover,.maparc-account__card:focus{background:var(--commons-subtle)}.maparc-account__empty{border:1px solid var(--commons-border);border-radius:10px;margin-top:20px;padding:18px}.maparc-account__empty p{margin:0}


.maparc-account__auth-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.maparc-registration {
	max-width: 760px;
}

.maparc-registration__form {
	margin-top: 24px;
}

.maparc-registration__form label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
}

.maparc-registration__form input {
	border: 1px solid var(--commons-border);
	border-radius: 6px;
	font: inherit;
	max-width: 100%;
	padding: 10px 12px;
	width: 100%;
}

.maparc-registration__columns {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.maparc-registration__errors {
	background: #fff4f4;
	border: 1px solid #cc1818;
	border-radius: 8px;
	margin-top: 18px;
	padding: 12px 16px;
}

.maparc-registration__login {
	margin-top: 20px;
}

@media (max-width: 720px) {
	.maparc-registration__columns {
		grid-template-columns: 1fr;
	}
}

/* Clear, high-contrast registration feedback on mobile and desktop. */
.maparc-registration .maparc-registration__errors { border:2px solid #b91c1c !important; background:#fef2f2 !important; color:#991b1b !important; border-radius:10px; padding:16px 18px; margin:16px 0; font-weight:500; }
.maparc-registration .maparc-registration__errors strong {display:block; margin-bottom:6px;}
.maparc-registration .maparc-registration__errors ul {margin:0 0 0 20px; padding:0;}
.maparc-registration .maparc-registration__errors li {color:#991b1b !important;}

/* Core 0.8.11 registration experience */
.maparc-registration-screen{max-width:610px;margin:24px auto;text-align:center;padding:32px 26px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}
.maparc-registration-screen h2{font-size:1.8rem;margin:12px 0}
.maparc-screen-icon{font-size:40px;line-height:1.4}
.maparc-screen-address{padding:14px;background:#f1f5f9;border-radius:8px;overflow-wrap:anywhere}
.maparc-registration-screen .maparc-registration__resend{text-align:left;margin-top:25px}
.maparc-password-wrap{display:flex;align-items:stretch;gap:5px}
.maparc-password-wrap input{min-width:0;flex:1}
.maparc-password-toggle{cursor:pointer;min-width:60px;border:1px solid #cbd5e1;background:#f8fafc;border-radius:6px}
.maparc-password-rules{font-size:.87rem;color:#475569}

/* 0.8.12: password reveal controls are compact and inside the input edge */
.maparc-password-wrap{position:relative;display:block!important}
.maparc-password-wrap input{width:100%!important;box-sizing:border-box!important;padding-right:52px!important}
.maparc-password-wrap .maparc-password-toggle{position:absolute!important;right:5px!important;top:50%!important;transform:translateY(-50%)!important;min-width:38px!important;width:38px!important;height:36px!important;border:0!important;border-radius:6px!important;background:transparent!important;color:#334155!important;padding:0!important;font-size:20px!important;line-height:1!important;cursor:pointer!important}
.maparc-password-wrap .maparc-password-toggle:hover,.maparc-password-wrap .maparc-password-toggle:focus-visible{background:#e2e8f0!important}
.maparc-recovery{max-width:580px;margin:24px auto;padding:26px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}
.maparc-recovery label{display:block;margin:15px 0 5px;font-weight:600}
.maparc-recovery input[type=email],.maparc-recovery input[type=password],.maparc-recovery input[type=text]{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:6px}
.maparc-recovery button[type=submit]{margin-top:18px;background:#0864c9;color:#fff;border:0;border-radius:6px;padding:12px 18px;cursor:pointer}
.maparc-recovery .maparc-recovery-note{color:#475569;font-size:.92em}

/* v0.8.15: live password requirements */
.maparc-live-password-checks{display:grid;gap:7px;margin:12px 0;font-size:14px;color:#475569}
.maparc-live-password-checks [data-rule]{display:flex;align-items:center;gap:9px}
.maparc-live-password-checks [data-rule]::before{content:"○";display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none;color:#64748b;font-weight:700}
.maparc-live-password-checks [data-rule].is-valid{color:#166534}
.maparc-live-password-checks [data-rule].is-valid::before{content:"✓";color:#166534}
.maparc-live-password-checks [data-rule].is-invalid{color:#475569}
.maparc-registration button[name="maparc_core_register"]:disabled,.maparc-recovery #maparc-reset-submit:disabled{opacity:.55;cursor:not-allowed}

/* v0.8.16: place live rules directly after first password; match after confirmation. */
.maparc-registration .maparc-live-password-checks,.maparc-recovery .maparc-live-password-checks{display:grid!important;gap:8px!important;margin:10px 0 18px!important;color:#475569!important;font-size:14px!important}
.maparc-registration .maparc-live-password-checks [data-rule],.maparc-recovery .maparc-live-password-checks [data-rule]{display:flex!important;align-items:center!important;gap:10px!important;color:#475569!important}
.maparc-registration .maparc-live-password-checks [data-rule]::before,.maparc-recovery .maparc-live-password-checks [data-rule]::before{content:""!important;display:block!important;width:12px!important;height:12px!important;min-width:12px!important;border-radius:50%!important;background:#94a3b8!important;border:0!important}
.maparc-registration .maparc-live-password-checks [data-rule].is-valid,.maparc-recovery .maparc-live-password-checks [data-rule].is-valid{color:#166534!important}
.maparc-registration .maparc-live-password-checks [data-rule].is-valid::before,.maparc-recovery .maparc-live-password-checks [data-rule].is-valid::before{content:"✓"!important;background:#15803d!important;color:#fff!important;font-size:11px!important;font-weight:700!important;line-height:17px!important;text-align:center!important;width:18px!important;height:18px!important;min-width:18px!important}
.maparc-password-match{font-size:14px!important;margin:8px 0 12px!important}
.maparc-password-match[hidden]{display:none!important}
.maparc-password-match.is-valid{color:#166534!important}
.maparc-password-match.is-invalid{color:#b91c1c!important}
.maparc-registration button[name="maparc_core_register"]:disabled,.maparc-recovery #maparc-reset-submit:disabled{opacity:.48!important;cursor:not-allowed!important;filter:grayscale(.4)!important}

/* v0.8.17: SVG rule indicators rendered in HTML, not CSS-generated glyphs. */
.maparc-registration .maparc-live-password-checks [data-rule]::before,.maparc-recovery .maparc-live-password-checks [data-rule]::before{content:none!important;display:none!important}
.maparc-registration .maparc-live-password-checks [data-rule],.maparc-recovery .maparc-live-password-checks [data-rule]{display:flex!important;align-items:center!important;gap:10px!important}
.maparc-live-password-checks .maparc-rule-icon{display:inline-block!important;flex:none!important}
.maparc-live-password-checks .maparc-rule-label{display:inline!important}
.maparc-registration button[name="maparc_core_register"]:disabled,.maparc-recovery #maparc-reset-submit:disabled{opacity:.4!important;filter:grayscale(1)!important;cursor:not-allowed!important}

/* 0.8.18: SVG indicators own their visual state; no duplicate pseudo-symbols. */
.maparc-registration .maparc-live-password-checks [data-rule]::before,.maparc-recovery .maparc-live-password-checks [data-rule]::before{content:none!important;display:none!important}
.maparc-registration .maparc-rule-icon,.maparc-recovery .maparc-rule-icon{display:inline-block!important;visibility:visible!important;opacity:1!important;flex:0 0 20px!important}
.maparc-registration .maparc-rule-label,.maparc-recovery .maparc-rule-label{display:inline!important}

/* v0.8.19: valid password field containers and explicit checklist layout */
.maparc-registration .maparc-registration__password-field{display:block;width:100%;margin:0 0 20px}
.maparc-registration .maparc-live-password-checks,.maparc-recovery .maparc-live-password-checks{display:grid!important;gap:7px!important;margin:12px 0 16px!important}
.maparc-registration .maparc-live-password-checks>div,.maparc-recovery .maparc-live-password-checks>div{display:flex!important;align-items:center!important;gap:9px!important}
.maparc-registration .maparc-live-password-checks svg,.maparc-recovery .maparc-live-password-checks svg{display:inline-block!important;flex:none!important}
.maparc-registration .maparc-password-match svg,.maparc-recovery .maparc-password-match svg{display:inline-block!important;flex:none!important}
.maparc-registration button[name="maparc_core_register"]:disabled{opacity:.5!important;cursor:not-allowed!important}

/* Shared branded student sign-in and password-recovery surfaces. */
.maparc-auth{max-width:570px;margin:32px auto;padding:clamp(22px,5vw,42px);background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 10px 32px rgba(15,23,42,.06);color:#1e293b}
.maparc-auth__eyebrow{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#7f1d1d;font-weight:700}
.maparc-auth h2{font-size:clamp(24px,4vw,32px);line-height:1.2;margin:8px 0 12px}
.maparc-auth form p{margin:16px 0}.maparc-auth form label{display:block;font-weight:600;margin-bottom:7px}
.maparc-auth form input:not([type=checkbox]){width:100%;min-height:48px;padding:12px 14px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#0f172a;box-sizing:border-box}
.maparc-auth__password{position:relative;display:block}.maparc-auth__password input{padding-right:75px!important}.maparc-auth__password button{position:absolute;right:6px;top:5px;border:0;background:transparent;color:#334155;padding:10px;cursor:pointer}
.maparc-auth__remember label{display:flex!important;align-items:center;gap:9px;font-weight:400!important}
.maparc-auth__submit,.maparc-auth form button[type=submit]{width:100%;min-height:48px;background:#7f1d1d;color:#fff;border:0;border-radius:9px;font-weight:700;cursor:pointer}
.maparc-auth a{color:#7f1d1d;text-decoration:underline}.maparc-auth__notice{padding:12px 14px;background:#fff1f2;border:1px solid #fecdd3;border-radius:9px;color:#9f1239}

/* v0.8.23: shared visual system from Create Account; do not alter registration. */
.maparc-auth.maparc-account{width:100%;max-width:760px;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;color:#1e293b;font-size:16px;line-height:1.5}
.maparc-auth h2{font-size:clamp(28px,3vw,36px);font-weight:700;line-height:1.25;margin:0 0 24px;color:#1e293b}
.maparc-auth>p{margin:0 0 22px}
.maparc-auth form{max-width:760px;margin:24px 0 20px}
.maparc-auth form p{margin:0 0 24px}
.maparc-auth form label,.maparc-auth.maparc-recovery label{display:block;font-size:16px;font-weight:600;margin:0 0 7px;color:#1e293b}
.maparc-auth form input:not([type=checkbox]),.maparc-auth.maparc-recovery input[type=email],.maparc-auth.maparc-recovery input[type=password],.maparc-auth.maparc-recovery input[type=text]{width:100%;max-width:100%;height:45px;min-height:45px;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#1e293b;box-shadow:0 1px 2px rgba(15,23,42,.06);font:inherit}
.maparc-auth .maparc-auth__password{display:block;position:relative;width:100%}
.maparc-auth .maparc-auth__password input{padding-right:52px!important}
.maparc-auth .maparc-auth__password button{position:absolute!important;top:50%!important;right:5px!important;transform:translateY(-50%)!important;display:flex!important;align-items:center!important;justify-content:center!important;width:40px!important;height:38px!important;min-width:40px!important;margin:0!important;padding:0!important;border:0!important;border-radius:6px!important;background:transparent!important;color:#334155!important;box-shadow:none!important;cursor:pointer!important}
.maparc-auth .maparc-auth__password button svg{width:21px;height:21px;display:block}
.maparc-auth .maparc-auth__password button:hover{background:#f1f5f9!important}
.maparc-auth .maparc-auth__remember label{display:flex!important;align-items:center;gap:8px;font-weight:400!important}
.maparc-auth .maparc-auth__remember input{width:15px;height:15px;margin:0}
.maparc-auth .maparc-auth__submit,.maparc-auth form button[type=submit],.maparc-auth.maparc-recovery button[type=submit]{display:inline-block;width:auto;min-height:38px;margin:0;padding:9px 16px;background:#2563eb;color:#fff;border:0;border-radius:6px;font-size:15px;font-weight:600;line-height:1.4;cursor:pointer}
.maparc-auth form button[type=submit]:disabled{opacity:.5;cursor:not-allowed}
.maparc-auth a{color:#0875d1;text-decoration:underline}
.maparc-auth__notice{padding:14px 16px;background:#fef2f2;border:2px solid #b91c1c;border-radius:8px;color:#991b1b}
.maparc-auth.maparc-recovery .maparc-password-wrap{display:block;position:relative;width:100%}
.maparc-auth.maparc-recovery .maparc-password-wrap input{padding-right:52px!important}
.maparc-auth.maparc-recovery .maparc-live-password-checks{margin:12px 0 20px!important}
@media(max-width:720px){.maparc-auth.maparc-account{padding:0 2px}.maparc-auth h2{font-size:28px}}
