/* Sainte Victoire — styles des pages publiques.
   Tout est préfixé .sv pour ne pas entrer en conflit avec le thème. */

.sv {
	--sv-green-900: #1d3d3a;
	--sv-green-700: #2e7d5e;
	--sv-ocre: #a8803f;
	--sv-cream: #f4f4ee;
	--sv-card: #ffffff;
	--sv-line: #dcdcd2;
	--sv-text: #1f2d2b;
	--sv-muted: #5f6b68;
	--sv-serif: Georgia, "Times New Roman", serif;
	--sv-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	box-sizing: border-box;
	max-width: 960px;
	margin: 0 auto;
	padding: 32px 16px 56px;
	background: var(--sv-cream);
	color: var(--sv-text);
	font-family: var(--sv-sans);
	font-size: 16px;
	line-height: 1.5;
}
.sv *, .sv *::before, .sv *::after { box-sizing: border-box; }

.sv-kicker {
	margin: 0 0 8px;
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--sv-ocre);
}
.sv-title {
	margin: 0 0 24px;
	font-family: var(--sv-serif);
	font-weight: 400;
	font-size: clamp(2rem, 5vw, 2.75rem);
	line-height: 1.15;
	color: var(--sv-green-900);
}
.sv h2 {
	margin: 0 0 12px;
	font-family: var(--sv-serif);
	font-weight: 400;
	font-size: 1.6rem;
	color: var(--sv-green-900);
}

.sv-card {
	max-width: 640px;
	padding: 28px;
	background: var(--sv-card);
	border: 1px solid var(--sv-line);
	border-radius: 6px;
}

.sv-notice {
	max-width: 640px;
	margin: 0 0 20px;
	padding: 12px 16px;
	border-radius: 4px;
	font-size: 14px;
	background: #e9eee9;
	color: var(--sv-muted);
}
.sv-notice--error { background: #f6e9e6; color: #7a2b1d; }
.sv-notice ul { margin: 0; padding-left: 18px; }

.sv-tabs { display: flex; gap: 8px; margin: 0 0 16px; }
.sv-tab {
	padding: 10px 18px;
	font: inherit;
	color: var(--sv-text);
	background: var(--sv-card);
	border: 1px solid var(--sv-line);
	border-radius: 4px;
	cursor: pointer;
}
.sv-tab.is-active { color: #fff; background: var(--sv-green-900); border-color: var(--sv-green-900); }
.sv-tab:focus-visible, .sv-btn:focus-visible, .sv-field input:focus-visible, .sv-field select:focus-visible {
	outline: 2px solid var(--sv-ocre);
	outline-offset: 2px;
}

.sv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
@media (max-width: 600px) { .sv-grid { grid-template-columns: 1fr; } .sv-card { padding: 20px; } }

.sv-field { display: flex; flex-direction: column; gap: 6px; }
.sv-field label { font-size: 13px; color: var(--sv-green-900); }
.sv-field input, .sv-field select {
	width: 100%;
	min-height: 44px;
	padding: 8px 12px;
	font: inherit;
	color: var(--sv-text);
	background: #fff;
	border: 1px solid #c9cbc2;
	border-radius: 4px;
}

.sv-hint { font-size: 13px; color: var(--sv-muted); }

.sv-btn {
	display: inline-block;
	margin-top: 8px;
	padding: 12px 22px;
	font: inherit;
	color: #fff;
	text-decoration: none;
	background: var(--sv-green-900);
	border: 0;
	border-radius: 4px;
	cursor: pointer;
}
.sv-btn:hover { background: #163230; }

.sv-code {
	margin: 8px 0;
	font-family: var(--sv-serif);
	font-size: 2.5rem;
	letter-spacing: .3em;
	color: var(--sv-green-900);
}

/* Champ piège anti-robots : invisible pour les humains. */
.sv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Page Connexion (0.5.29) */
.sv-login-page .sv-card, .sv-login-page .sv-notice { max-width: 480px; }
.sv-login-form { display: grid; gap: 16px; }
.sv-check { display: flex; gap: 10px; align-items: center; font-size: 15px; color: var(--sv-text); cursor: pointer; }
.sv-check input { width: 20px; height: 20px; margin: 0; accent-color: var(--sv-green-900); }
.sv-login-form .sv-hint { margin: -10px 0 0 30px; }
.sv-login-form .sv-btn { justify-self: start; margin-top: 4px; }
.sv-login-form .sv-btn:disabled { opacity: .6; cursor: wait; }
.sv-login-links { margin: 0; font-size: 14px; }
.sv-login-links a { color: var(--sv-green-900); }
.sv-check input:focus-visible, .sv-login-links a:focus-visible { outline: 2px solid var(--sv-ocre); outline-offset: 2px; }
/* Sur les pages publiques, public.css stylise tous les boutons, libellés et champs : on reprend la main ici. */
body.sv-site .sv-login-page .sv-btn { color: #fff; background: var(--sv-green-900); border: 0; min-height: 46px; padding: 12px 24px; }
body.sv-site .sv-login-page .sv-btn:hover { background: #163230; color: #fff; }
body.sv-site .sv-login-page .sv-check { display: flex; font-size: 15px; }
body.sv-site .sv-login-page .sv-check input { display: inline-block; width: 20px; height: 20px; padding: 0; margin: 0; flex: none; }
body.sv-site .sv-login-page .sv-field input { margin: 0; }
