/* DBFI – Simulateur de prévoyance
   Tout est scopé sous .dbfi-simprev (aucune règle globale).
   Charte : lime #b3bc00, noir #000. Mise en page en flexbox (pas de CSS grid). */

.dbfi-simprev,
.dbfi-simprev * {
	box-sizing: border-box;
}

.dbfi-simprev {
	--dbfi-lime: #b3bc00;
	--dbfi-black: #000;
	--dbfi-ink: #1a1a1a;
	--dbfi-line: #e2e2da;
	--dbfi-soft: #fafafa;
	--dbfi-grey: #9c9c9c;
	max-width: 860px;
	margin: 1.5em auto;
	font-family: inherit;
	color: var(--dbfi-ink);
	line-height: 1.5;
}

.dbfi-simprev-noscript {
	padding: 1em 1.2em;
	background: var(--dbfi-soft);
	border-left: 4px solid var(--dbfi-lime);
	border-radius: 0 8px 8px 0;
}

/* ---------- En-tête ---------- */
.dbfi-simprev__head {
	background: var(--dbfi-black);
	color: #fff;
	border-radius: 12px;
	padding: 1.1em 1.3em;
}
.dbfi-simprev__kicker {
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .72em;
	font-weight: 700;
	color: var(--dbfi-lime);
	margin: 0 0 .3em;
}
.dbfi-simprev__title {
	margin: 0;
	font-size: 1.35em;
	line-height: 1.2;
	color: #fff;
}

/* ---------- Contrôles ---------- */
.dbfi-simprev__controls {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 1.1em 0 .4em;
}
.dbfi-simprev__field {
	display: flex;
	flex-direction: column;
	gap: .3em;
	flex: 1 1 240px;
}
.dbfi-simprev__field--hidden { display: none; }
.dbfi-simprev__field label {
	font-size: .82em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--dbfi-black);
}
.dbfi-simprev__field select,
.dbfi-simprev__field input {
	width: 100%;
	padding: .6em .7em;
	font-size: 1em;
	font-family: inherit;
	color: var(--dbfi-ink);
	background: #fff;
	border: 1px solid #c8c8bd;
	border-radius: 8px;
}
.dbfi-simprev__field select:focus,
.dbfi-simprev__field input:focus {
	outline: none;
	border-color: var(--dbfi-lime);
	box-shadow: 0 0 0 3px rgba(179, 188, 0, .25);
}
.dbfi-simprev__hint {
	font-size: .8em;
	color: #666;
	margin: .1em 0 0;
}

/* ---------- Bandeau « manque de couverture » ---------- */
.dbfi-simprev__gapband {
	margin: 1em 0 .2em;
	border: 2px solid var(--dbfi-lime);
	border-radius: 12px;
	background: #fbfce8;
	padding: 1em 1.2em;
}
.dbfi-simprev__gapband h3 {
	margin: 0 0 .1em;
	font-size: 1.05em;
	color: var(--dbfi-black);
}
.dbfi-simprev__gapband .dbfi-simprev__sub {
	font-size: .82em;
	color: #666;
	margin: 0 0 .8em;
}
.dbfi-simprev__gapgrid {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}
.dbfi-simprev__gapitem {
	flex: 1 1 180px;
	background: #fff;
	border: 1px solid var(--dbfi-line);
	border-radius: 10px;
	padding: .7em .9em;
}
.dbfi-simprev__gapitem .lbl {
	font-size: .78em;
	text-transform: uppercase;
	letter-spacing: .04em;
	font-weight: 700;
	color: #6f7500;
	margin: 0 0 .2em;
}
.dbfi-simprev__gapitem .big {
	font-size: 1.35em;
	font-weight: 800;
	color: var(--dbfi-black);
	line-height: 1.1;
}
.dbfi-simprev__gapitem .xtra {
	font-size: .8em;
	color: #555;
	margin: .2em 0 0;
}

/* ---------- Résumé régime ---------- */
.dbfi-simprev__regime {
	margin: 1em 0 .4em;
	padding: .9em 1.1em;
	background: var(--dbfi-soft);
	border-left: 4px solid var(--dbfi-lime);
	border-radius: 0 8px 8px 0;
	font-size: .95em;
}
.dbfi-simprev__regime strong { color: var(--dbfi-black); }

/* ---------- Cartes de risque ---------- */
.dbfi-simprev__cards {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 1em 0;
}
.dbfi-simprev__card {
	flex: 1 1 240px;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--dbfi-line);
	border-radius: 12px;
	background: #fff;
	padding: 1em 1.1em;
}
.dbfi-simprev__card h3 {
	margin: 0 0 .1em;
	font-size: 1.05em;
	color: var(--dbfi-black);
}
.dbfi-simprev__card .dbfi-simprev__sub {
	font-size: .8em;
	color: #666;
	margin: 0 0 .8em;
}

.dbfi-simprev__amount {
	font-size: 1.5em;
	font-weight: 800;
	color: var(--dbfi-black);
	line-height: 1.1;
}
.dbfi-simprev__amount small {
	display: block;
	font-size: .5em;
	font-weight: 600;
	color: #666;
	letter-spacing: .02em;
}

/* Barre couvert / besoin (flexbox, pas de grid) */
.dbfi-simprev__bar {
	display: flex;
	width: 100%;
	height: 22px;
	margin: .8em 0 .5em;
	border: 1px solid var(--dbfi-line);
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
}
.dbfi-simprev__bar-covered {
	background: var(--dbfi-black);
	min-width: 2px;
}
.dbfi-simprev__bar-gap {
	background: var(--dbfi-lime);
	background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.35) 0 5px, transparent 5px 10px);
	min-width: 2px;
}

.dbfi-simprev__legend {
	display: flex;
	flex-wrap: wrap;
	gap: .3em 1em;
	font-size: .8em;
	color: #444;
	margin: .2em 0 .6em;
}
.dbfi-simprev__legend span { display: inline-flex; align-items: center; gap: .4em; }
.dbfi-simprev__dot { width: 12px; height: 12px; border-radius: 3px; border: 1px solid var(--dbfi-line); }
.dbfi-simprev__dot--covered { background: var(--dbfi-black); }
.dbfi-simprev__dot--gap {
	background: var(--dbfi-lime);
	background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.35) 0 4px, transparent 4px 8px);
}

.dbfi-simprev__rows { margin: .3em 0 0; }
.dbfi-simprev__row {
	display: flex;
	justify-content: space-between;
	gap: 1em;
	padding: .3em 0;
	border-top: 1px solid var(--dbfi-line);
	font-size: .9em;
}
.dbfi-simprev__row:first-child { border-top: none; }
.dbfi-simprev__row .k { color: #555; }
.dbfi-simprev__row .v { font-weight: 700; color: var(--dbfi-ink); text-align: right; }
.dbfi-simprev__row .v--gap { color: #6f7500; }

.dbfi-simprev__note {
	font-size: .82em;
	color: #555;
	margin: .6em 0 0;
	padding-top: .5em;
	border-top: 1px dashed var(--dbfi-line);
}

/* ---------- Synthèse / avertissement ---------- */
.dbfi-simprev__synth {
	margin: 1em 0 0;
	padding: 1em 1.2em;
	background: var(--dbfi-soft);
	border: 1px solid var(--dbfi-line);
	border-radius: 12px;
	font-size: .95em;
}
.dbfi-simprev__synth strong { color: var(--dbfi-black); }
.dbfi-simprev__disclaimer {
	font-size: .78em;
	color: #777;
	margin: .8em 0 0;
}

@media (max-width: 560px) {
	.dbfi-simprev__amount { font-size: 1.3em; }
}
