/* Model Competition Registration – frontend */

.mcr-wrap {
	--mcr-ink: #1a1f24;
	--mcr-muted: #5c6670;
	--mcr-line: #d8dee4;
	--mcr-surface: #f6f3ef;
	--mcr-panel: #ffffff;
	--mcr-header-end: #ffffff;
	--mcr-accent: #0d4f4f;
	--mcr-accent-soft: #e4f0ef;
	--mcr-danger: #8b1e1e;
	--mcr-danger-bg: #f8eaea;
	--mcr-danger-border: #e0b4b4;
	--mcr-success: #1e5c3a;
	--mcr-success-bg: #e8f5ee;
	--mcr-success-border: #b4d4c0;
	--mcr-info-border: #b8d4d2;
	--mcr-radius: 4px;
	--mcr-font: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	box-sizing: border-box;
	max-width: 880px;
	margin: 0 auto;
	padding: 1.5rem 1rem 3rem;
	color: var(--mcr-ink);
	font-family: var(--mcr-font);
	line-height: 1.5;
}

.mcr-wrap *,
.mcr-wrap *::before,
.mcr-wrap *::after {
	box-sizing: border-box;
}

.mcr-header {
	margin-bottom: 1.75rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--mcr-line);
	background: linear-gradient(135deg, var(--mcr-surface) 0%, var(--mcr-header-end) 70%);
	padding: 1.25rem 1.25rem 1.35rem;
	border: 1px solid var(--mcr-line);
	border-radius: var(--mcr-radius);
}

.mcr-theme-logo {
	margin: 0 0 0.85rem;
	display: flex;
	justify-content: flex-end;
}

.mcr-theme-logo__img {
	display: block;
	max-width: min(280px, 100%);
	width: auto;
	height: auto;
	max-height: 88px;
	object-fit: contain;
	margin-left: auto;
}

.mcr-eyebrow {
	margin: 0 0 0.35rem;
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mcr-accent);
	font-weight: 600;
}

.mcr-title {
	margin: 0 0 0.5rem;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 650;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.mcr-lead {
	margin: 0;
	color: var(--mcr-muted);
	max-width: 38em;
}

.mcr-lead--small {
	margin-bottom: 1rem;
	font-size: 0.95rem;
}

.mcr-notice {
	margin: 0 0 1.25rem;
	padding: 0.85rem 1rem;
	border-radius: var(--mcr-radius);
	border: 1px solid var(--mcr-line);
	font-size: 0.95rem;
}

.mcr-notice ul {
	margin: 0;
	padding-left: 1.15rem;
}

.mcr-notice--error {
	background: var(--mcr-danger-bg);
	border-color: var(--mcr-danger-border);
	color: var(--mcr-danger);
}

.mcr-notice--success {
	background: var(--mcr-success-bg);
	border-color: var(--mcr-success-border);
	color: var(--mcr-success);
}

.mcr-notice--info {
	background: var(--mcr-accent-soft);
	border-color: var(--mcr-info-border);
	color: var(--mcr-accent);
}

.mcr-fieldset {
	margin: 0 0 1.5rem;
	padding: 1.25rem 1.15rem 1.35rem;
	border: 1px solid var(--mcr-line);
	border-radius: var(--mcr-radius);
	background: var(--mcr-panel);
}

.mcr-fieldset legend {
	padding: 0 0.4rem;
	font-size: 0.85rem;
	font-weight: 650;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--mcr-accent);
}

.mcr-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.15rem;
}

.mcr-field--full {
	grid-column: 1 / -1;
}

.mcr-field label,
.mcr-label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--mcr-ink);
}

.mcr-req {
	color: var(--mcr-danger);
}

.mcr-hint {
	margin: 0.3rem 0 0;
	font-size: 0.8rem;
	color: var(--mcr-muted);
}

.mcr-field input[type="text"],
.mcr-field input[type="password"],
.mcr-field input[type="tel"],
.mcr-field input[type="number"],
.mcr-field input[type="date"],
.mcr-field input[type="email"],
.mcr-field select {
	width: 100%;
	padding: 0.55rem 0.65rem;
	border: 1px solid var(--mcr-line);
	border-radius: var(--mcr-radius);
	background: var(--mcr-panel);
	color: var(--mcr-ink);
	font: inherit;
	font-size: 0.95rem;
}

.mcr-field input:focus,
.mcr-field select:focus {
	outline: 2px solid var(--mcr-accent);
	outline-offset: 1px;
	border-color: var(--mcr-accent);
}

.mcr-field input:disabled {
	background: var(--mcr-surface);
	color: var(--mcr-muted);
}

.mcr-radios {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
}

.mcr-radio {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 500;
	cursor: pointer;
}

.mcr-photos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.mcr-photo-requirements {
	margin: 0 0 1.15rem;
	padding: 1rem 1.1rem;
	background: var(--mcr-surface);
	border: 1px solid var(--mcr-line);
	border-radius: var(--mcr-radius);
}

.mcr-photo-requirements__title {
	margin: 0 0 0.6rem;
	font-size: 1rem;
	font-weight: 650;
	color: var(--mcr-ink);
}

.mcr-photo-requirements__list {
	margin: 0 0 0.85rem;
	padding-left: 1.2rem;
	color: var(--mcr-ink);
	font-size: 0.92rem;
}

.mcr-photo-requirements__list li {
	margin-bottom: 0.35rem;
}

.mcr-photo-requirements__list li:last-child {
	margin-bottom: 0;
}

.mcr-photo-requirements__note {
	margin: 0;
	padding-top: 0.75rem;
	border-top: 1px solid var(--mcr-line);
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--mcr-ink);
}

.mcr-photo-requirements__note strong {
	color: var(--mcr-danger);
}

.mcr-photo-field {
	padding: 0.9rem;
	border: 1px dashed var(--mcr-line);
	border-radius: var(--mcr-radius);
	background: var(--mcr-surface);
}

.mcr-photo-field__title {
	font-size: 0.9rem;
	font-weight: 600;
}

.mcr-badge {
	display: inline-block;
	margin-left: 0.35rem;
	padding: 0.1rem 0.4rem;
	font-size: 0.7rem;
	font-weight: 650;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--mcr-muted);
	background: var(--mcr-panel);
	border: 1px solid var(--mcr-line);
	border-radius: 2px;
	vertical-align: middle;
}

.mcr-file input[type="file"] {
	width: 100%;
	margin-top: 0.5rem;
	font-size: 0.85rem;
}

.mcr-file__preview {
	margin-top: 0.65rem;
}

.mcr-file__preview img {
	display: block;
	width: 100%;
	max-height: 180px;
	object-fit: cover;
	border-radius: var(--mcr-radius);
	border: 1px solid var(--mcr-line);
}

.mcr-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	margin-top: 0.5rem;
}

.mcr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.7rem 1.25rem;
	border-radius: var(--mcr-radius);
	border: 1px solid transparent;
	font: inherit;
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.mcr-btn--primary {
	background: #000;
	color: #fff;
	border-color: #000;
}

.mcr-btn--primary:hover {
	background: #1a1a1a;
	color: #fff;
	border-color: #1a1a1a;
}

.mcr-btn--primary:disabled,
.mcr-btn--primary[aria-disabled="true"] {
	opacity: 0.45;
	cursor: not-allowed;
	background: #000;
	color: #fff;
	border-color: #000;
}

.mcr-btn--primary:disabled:hover {
	background: #000;
	color: #fff;
}

.mcr-submit-hint {
	margin: 0.5rem 0 0;
	width: 100%;
}

.mcr-btn--ghost {
	background: transparent;
	border-color: var(--mcr-line);
	color: var(--mcr-ink);
}

.mcr-btn--ghost:hover {
	border-color: var(--mcr-accent);
	color: var(--mcr-accent);
}

/* Profile */
.mcr-profile-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.mcr-summary-card {
	padding: 0.9rem 1rem;
	background: var(--mcr-accent-soft);
	border: 1px solid #b8d4d2;
	border-radius: var(--mcr-radius);
}

.mcr-summary-label {
	display: block;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--mcr-muted);
	margin-bottom: 0.25rem;
}

.mcr-section-title {
	margin: 0 0 0.85rem;
	font-size: 1.1rem;
}

.mcr-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.85rem;
	margin-bottom: 1.75rem;
}

.mcr-gallery-item {
	margin: 0;
	border: 1px solid var(--mcr-line);
	border-radius: var(--mcr-radius);
	overflow: hidden;
	background: var(--mcr-panel);
}

.mcr-gallery-item img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

.mcr-gallery-item__empty {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 3 / 4;
	background: var(--mcr-surface);
	color: var(--mcr-muted);
	font-size: 0.85rem;
}

.mcr-gallery-item figcaption {
	padding: 0.45rem 0.55rem;
	font-size: 0.75rem;
	color: var(--mcr-muted);
	border-top: 1px solid var(--mcr-line);
}

.mcr-optional {
	font-weight: 400;
	font-size: 0.85em;
	color: var(--mcr-muted);
	text-transform: none;
	letter-spacing: 0;
}

/* Password strength meter */
.mcr-pw {
	margin: 0.55rem 0 0.35rem;
}

.mcr-pw__track {
	height: 8px;
	border-radius: 999px;
	background: var(--mcr-surface);
	border: 1px solid var(--mcr-line);
	overflow: hidden;
}

.mcr-pw__bar {
	height: 100%;
	width: 0;
	border-radius: 999px;
	background: #9aa3ab;
	transition: width 0.18s ease-out, background-color 0.18s ease-out;
}

.mcr-pw[data-level="weak"] .mcr-pw__bar,
.mcr-pw__bar[data-level="weak"] {
	background: #b42318;
}

.mcr-pw[data-level="fair"] .mcr-pw__bar,
.mcr-pw__bar[data-level="fair"] {
	background: #b54708;
}

.mcr-pw[data-level="good"] .mcr-pw__bar,
.mcr-pw__bar[data-level="good"] {
	background: #027a48;
}

.mcr-pw[data-level="strong"] .mcr-pw__bar,
.mcr-pw__bar[data-level="strong"] {
	background: #0d4f4f;
}

.mcr-pw__label {
	margin: 0.4rem 0 0;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--mcr-ink);
}

.mcr-pw[data-level="weak"] .mcr-pw__label {
	color: #b42318;
}

.mcr-pw[data-level="fair"] .mcr-pw__label {
	color: #b54708;
}

.mcr-pw[data-level="good"] .mcr-pw__label,
.mcr-pw[data-level="strong"] .mcr-pw__label {
	color: #027a48;
}

.mcr-pw__rules {
	list-style: none;
	margin: 0.5rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.2rem;
}

.mcr-pw__rules li {
	position: relative;
	padding-left: 1.2rem;
	font-size: 0.82rem;
	color: var(--mcr-muted);
	line-height: 1.35;
}

.mcr-pw__rules li::before {
	content: "○";
	position: absolute;
	left: 0;
	top: 0;
	font-size: 0.85em;
	line-height: 1.45;
	color: var(--mcr-muted);
}

.mcr-pw__rules li.is-met {
	color: #027a48;
}

.mcr-pw__rules li.is-met::before {
	content: "✓";
	font-weight: 700;
	color: #027a48;
}

.mcr-pw__rules li.is-missing {
	color: #b42318;
}

.mcr-pw__rules li.is-missing::before {
	content: "×";
	font-weight: 700;
	color: #b42318;
}

.mcr-pw-match {
	margin: 0.4rem 0 0;
	font-size: 0.85rem;
	font-weight: 600;
}

.mcr-pw-match--ok {
	color: #027a48;
}

.mcr-pw-match--bad {
	color: #b42318;
}

.mcr-form input.mcr-input--invalid,
.mcr-form input[aria-invalid="true"] {
	border-color: #e0b4b4;
	box-shadow: 0 0 0 1px #e0b4b4;
}

.mcr-form input.mcr-input--valid {
	border-color: #b4d4c0;
}

.mcr-form input.mcr-input--readonly,
.mcr-form input[readonly] {
	background: var(--mcr-surface);
	color: var(--mcr-ink);
	cursor: default;
}

.mcr-field--disabled {
	opacity: 0.55;
	pointer-events: none;
	filter: grayscale(0.15);
}

.mcr-field--disabled .mcr-label,
.mcr-field--disabled .mcr-radio {
	color: var(--mcr-muted);
}

/* Upload progress overlay (registration) */
.mcr-upload-overlay {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
	background: rgba(18, 22, 26, 0.62);
	backdrop-filter: blur(2px);
}

.mcr-upload-overlay[hidden] {
	display: none !important;
}

.mcr-upload-overlay__panel {
	width: min(420px, 100%);
	padding: 1.5rem 1.35rem 1.35rem;
	background: var(--mcr-panel);
	border: 1px solid var(--mcr-line);
	border-radius: var(--mcr-radius);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
	text-align: center;
}

.mcr-upload-overlay__title {
	margin: 0 0 0.4rem;
	font-size: 1.15rem;
	font-weight: 650;
	color: var(--mcr-ink);
}

.mcr-upload-overlay__text {
	margin: 0 0 1.1rem;
	font-size: 0.92rem;
	color: var(--mcr-muted);
	line-height: 1.45;
}

.mcr-progress {
	height: 12px;
	border-radius: 999px;
	background: var(--mcr-surface);
	border: 1px solid var(--mcr-line);
	overflow: hidden;
}

.mcr-progress__bar {
	height: 100%;
	width: 0;
	border-radius: 999px;
	background: linear-gradient(90deg, #111 0%, #333 100%);
	transition: width 0.18s ease-out;
}

.mcr-upload-overlay__pct {
	margin: 0.65rem 0 0;
	font-size: 0.9rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--mcr-ink);
}

body.mcr-uploading {
	overflow: hidden;
}

/* ——— Form themes (admin setting: Light / Dark / Auto) ——— */

.mcr-wrap.mcr-theme-dark {
	--mcr-ink: #e8eaed;
	--mcr-muted: #9aa3ab;
	--mcr-line: #3a424a;
	--mcr-surface: #1c2126;
	--mcr-panel: #161a1e;
	--mcr-header-end: #14181c;
	--mcr-accent: #5ec4c0;
	--mcr-accent-soft: #1e2f33;
	--mcr-danger: #f2a0a0;
	--mcr-danger-bg: #3a1f1f;
	--mcr-danger-border: #6b3a3a;
	--mcr-success: #7dcea0;
	--mcr-success-bg: #1a3326;
	--mcr-success-border: #2f5a42;
	--mcr-info-border: #2f5554;
	color: var(--mcr-ink);
	background: transparent;
}

.mcr-wrap.mcr-theme-dark .mcr-btn--primary {
	background: #e8eaed;
	color: #12161a;
	border-color: #e8eaed;
}

.mcr-wrap.mcr-theme-dark .mcr-btn--primary:hover,
.mcr-wrap.mcr-theme-dark .mcr-btn--primary:focus {
	background: #fff;
	color: #0a0c0e;
	border-color: #fff;
}

.mcr-wrap.mcr-theme-dark .mcr-btn--primary:disabled {
	background: #4a525a;
	color: #c4c9ce;
	border-color: #4a525a;
}

.mcr-wrap.mcr-theme-dark .mcr-progress__bar {
	background: linear-gradient(90deg, #5ec4c0 0%, #8ad9d5 100%);
}

.mcr-wrap.mcr-theme-dark .mcr-pw[data-level="strong"] .mcr-pw__bar,
.mcr-wrap.mcr-theme-dark .mcr-pw__bar[data-level="strong"] {
	background: #5ec4c0;
}

.mcr-wrap.mcr-theme-dark .mcr-form input.mcr-input--invalid,
.mcr-wrap.mcr-theme-dark .mcr-form input[aria-invalid="true"] {
	border-color: var(--mcr-danger-border);
	box-shadow: 0 0 0 1px var(--mcr-danger-border);
}

.mcr-wrap.mcr-theme-dark .mcr-form input.mcr-input--valid {
	border-color: var(--mcr-success-border);
}

/* Auto: light by default (root tokens); dark when device prefers dark. */
@media (prefers-color-scheme: dark) {
	.mcr-wrap.mcr-theme-auto {
		--mcr-ink: #e8eaed;
		--mcr-muted: #9aa3ab;
		--mcr-line: #3a424a;
		--mcr-surface: #1c2126;
		--mcr-panel: #161a1e;
		--mcr-header-end: #14181c;
		--mcr-accent: #5ec4c0;
		--mcr-accent-soft: #1e2f33;
		--mcr-danger: #f2a0a0;
		--mcr-danger-bg: #3a1f1f;
		--mcr-danger-border: #6b3a3a;
		--mcr-success: #7dcea0;
		--mcr-success-bg: #1a3326;
		--mcr-success-border: #2f5a42;
		--mcr-info-border: #2f5554;
		color: var(--mcr-ink);
	}

	.mcr-wrap.mcr-theme-auto .mcr-btn--primary {
		background: #e8eaed;
		color: #12161a;
		border-color: #e8eaed;
	}

	.mcr-wrap.mcr-theme-auto .mcr-btn--primary:hover,
	.mcr-wrap.mcr-theme-auto .mcr-btn--primary:focus {
		background: #fff;
		color: #0a0c0e;
		border-color: #fff;
	}

	.mcr-wrap.mcr-theme-auto .mcr-btn--primary:disabled {
		background: #4a525a;
		color: #c4c9ce;
		border-color: #4a525a;
	}

	.mcr-wrap.mcr-theme-auto .mcr-progress__bar {
		background: linear-gradient(90deg, #5ec4c0 0%, #8ad9d5 100%);
	}

	.mcr-wrap.mcr-theme-auto .mcr-form input.mcr-input--invalid,
	.mcr-wrap.mcr-theme-auto .mcr-form input[aria-invalid="true"] {
		border-color: var(--mcr-danger-border);
		box-shadow: 0 0 0 1px var(--mcr-danger-border);
	}

	.mcr-wrap.mcr-theme-auto .mcr-form input.mcr-input--valid {
		border-color: var(--mcr-success-border);
	}
}

@media (max-width: 720px) {
	.mcr-grid,
	.mcr-photos,
	.mcr-profile-summary,
	.mcr-gallery {
		grid-template-columns: 1fr;
	}
}
