.acp-app {
	--acp-accent: #024393;      /* bleu */
	--acp-accent-ink: #fff;
	--acp-hover: #f3b90d;       /* jaune */
	--acp-hover-ink: #024393;
	--acp-border: #d6dbe3;
	--acp-muted: #5b6573;
	font-size: 1rem;
	line-height: 1.5;
}
/* Largeur : 720 px centrés, même si le thème limite la largeur du contenu ; marge de 1 rem sur mobile.
   Sélecteur renforcé (#id.classe) pour l'emporter sur les marges imposées par les thèmes. */
#acp-app.acp-app {
	width: min(720px, calc(100vw - 2rem));
	max-width: none !important;
	margin: 2rem 0 2rem calc(50% - min(360px, 50vw - 1rem)) !important;
}
.acp-app * { box-sizing: border-box; }
.acp-title { margin: 0 0 1.25rem; text-align: center; }
.acp-form, .acp-card {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	padding: 1.5rem;
	border: 1px solid var(--acp-border);
	border-radius: 10px;
	background: #fff;
}
.acp-card .acp-form { padding: 0; border: 0; }
.acp-form label { font-weight: 600; }
.acp-form input[type="text"] {
	width: 100%;
	padding: .7rem .8rem;
	font-size: 1rem;
	border: 1px solid var(--acp-border);
	border-radius: 6px;
}
.acp-code { font-size: 1.6rem !important; letter-spacing: .4em; text-align: center; font-variant-numeric: tabular-nums; }
.acp-btn {
	display: inline-block;
	width: 100%;
	padding: .8rem 1rem;
	border: 0;
	border-radius: 6px;
	background: var(--acp-accent);
	color: var(--acp-accent-ink) !important;
	font-size: 1rem;
	font-weight: 600;
	text-align: center;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}
.acp-btn:hover, .acp-btn:focus-visible {
	background: var(--acp-hover);
	color: var(--acp-hover-ink) !important;
}
.acp-btn-go { font-size: 1.1rem; padding: 1rem; }
.acp-busy { opacity: .6; pointer-events: none; }
.acp-msg { margin: 0; padding: .7rem .9rem; border-radius: 6px; font-size: .95rem; }
.acp-msg ul { margin: .4rem 0 0 1.2rem; padding: 0; }
.acp-msg-error { background: #fdecec; color: #8a1c1c; }
.acp-msg-info { background: #eef3fb; color: #024393; }
.acp-msg-ok { background: #e8f6ec; color: #1b5e2e; }
.acp-help, .acp-meta, .acp-links { margin: 0; color: var(--acp-muted); font-size: .9rem; }
.acp-links { text-align: center; }
.acp-hello { margin: 0; font-size: 1.1rem; }
.acp-go { margin: .25rem 0 0; }
.acp-check { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400 !important; }
.acp-check input { margin-top: .3rem; }
.acp-loading { text-align: center; color: var(--acp-muted); }
.acp-lead { margin: 0; font-weight: 600; }
.acp-btn-alt { background: #fff; color: var(--acp-accent) !important; border: 2px solid var(--acp-accent); }
.acp-btn-alt:hover, .acp-btn-alt:focus-visible { border-color: var(--acp-hover); }
.acp-instructions { display: flex; flex-direction: column; gap: .6rem; }
.acp-instructions p { margin: 0; }
.acp-instructions a { color: var(--acp-accent); font-weight: 600; }
.acp-check-read { font-weight: 600 !important; padding: .7rem .8rem; border: 1px solid var(--acp-border); border-radius: 6px; cursor: pointer; }
.acp-btn.is-disabled, .acp-btn.is-disabled:hover { opacity: .45; cursor: not-allowed; background: var(--acp-accent); color: var(--acp-accent-ink) !important; }
.acp-shake { animation: acp-shake .4s; border-color: #c0392b; }
@keyframes acp-shake { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
.acp-help-box { margin: 0; padding: .8rem 1rem; border-left: 4px solid var(--acp-hover); background: #fff8e1; color: #3d3200; border-radius: 6px; font-weight: 600; font-size: .95rem; }
