/* ============================================================
   Faqto — Facturation : styles de l'application [gcf_app]
   Registre « banque d'affaires » : noir et blanc, filets fins,
   titres à empattements (EB Garamond), interface en Inter,
   chiffres tabulaires. Aucun pictogramme décoratif.
   Règle constante : tout fond noir porte un texte blanc.
   @package Groupe_Coste_Facturation
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');

/* ── Jetons & base ───────────────────────────────────────── */
.gcf-app {
	--gcf-ink:         #0e0e10;   /* titres, textes forts, fonds noirs */
	--gcf-black:       #0e0e10;
	--gcf-black-h:     #000000;
	--gcf-text:        #2b2b30;   /* texte courant                     */
	--gcf-muted:       #6b6b73;   /* texte secondaire                  */
	--gcf-line:        #e4e4e7;   /* filets                            */
	--gcf-line-strong: #c8c8cd;   /* bordures de champs                */
	--gcf-surface:     #f6f6f7;   /* fonds discrets                    */
	--gcf-radius:      3px;
	--gcf-serif: 'EB Garamond', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
	--gcf-sans:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

	font-family: var(--gcf-sans);
	font-size: 15px;
	color: var(--gcf-text);
	line-height: 1.55;
	max-width: 1180px;
	margin: 0 auto;
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
}
.gcf-app *,
.gcf-app *::before,
.gcf-app *::after { box-sizing: border-box; }

.gcf-app h1, .gcf-app h2, .gcf-app h3 {
	font-family: var(--gcf-serif);
	font-weight: 500;
	color: var(--gcf-ink);
	line-height: 1.2;
	letter-spacing: -.005em;
	margin: 0 0 .4em;
}
.gcf-app a { color: var(--gcf-ink); }

/* Titre de section (classe historique « barre ») : titre sobre à empattements. */
.gcf-app .gcf-bar {
	display: block;
	font-family: var(--gcf-serif);
	font-size: 28px;
	font-weight: 500;
	color: var(--gcf-ink);
	background: none;
	padding: 0;
	border-radius: 0;
}
.gcf-app h3.gcf-bar { font-size: 22px; }
.gcf-app .gcf-hl { background: none; color: inherit; padding: 0; }

/* Montants alignés : chiffres à chasse fixe partout où l'on compare des nombres. */
.gcf-list, .gcf-lines, .gcf-totals, .gcf-stat-v, .gcf-num { font-variant-numeric: tabular-nums; }

/* ── Page d'accueil (déconnecté) ─────────────────────────── */
.gcf-grid {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	gap: 64px;
	align-items: start;
	padding: 24px 0 8px;
}
@media (max-width: 900px) {
	.gcf-grid { grid-template-columns: 1fr; gap: 40px; }
}

.gcf-app .gcf-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--gcf-muted);
	margin: 0 0 20px;
}
.gcf-eyebrow::before { content: ''; width: 32px; height: 1px; background: var(--gcf-ink); }

.gcf-app .gcf-hero h1 { font-size: clamp(34px, 4.2vw, 50px); line-height: 1.08; margin-bottom: 20px; }
.gcf-hero p.gcf-lead { font-size: 17px; color: var(--gcf-muted); max-width: 560px; margin: 0 0 8px; }

.gcf-app .gcf-block-title {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gcf-ink);
	margin: 36px 0 4px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--gcf-ink);
}

/* Étapes numérotées 01, 02, 03 : numéros typographiques, sans pastille. */
.gcf-steps { list-style: none; counter-reset: gcf; margin: 0; padding: 0; }
.gcf-steps li {
	counter-increment: gcf;
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: 0 8px;
	padding: 14px 0;
	border-bottom: 1px solid var(--gcf-line);
}
.gcf-steps li::before {
	content: counter(gcf, decimal-leading-zero);
	font-family: var(--gcf-serif);
	font-size: 20px;
	line-height: 1.2;
	color: var(--gcf-ink);
	grid-row: span 2;
}
.gcf-steps li strong { color: var(--gcf-ink); font-weight: 600; }

/* Avantages : liste à filets, sans icône. */
.gcf-benefits { list-style: none; margin: 0; padding: 0; }
.gcf-benefits li { padding: 12px 0; border-bottom: 1px solid var(--gcf-line); }
.gcf-benefits strong { color: var(--gcf-ink); font-weight: 600; }

/* Faits clés sous l'argumentaire. */
.gcf-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 28px 0 0; border-top: 1px solid var(--gcf-line); border-bottom: 1px solid var(--gcf-line); }
.gcf-facts div { padding: 14px 16px 14px 0; }
.gcf-facts div + div { padding-left: 16px; border-left: 1px solid var(--gcf-line); }
.gcf-facts dt { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gcf-muted); }
.gcf-facts dd { margin: 4px 0 0; font-family: var(--gcf-serif); font-size: 18px; color: var(--gcf-ink); }
@media (max-width: 560px) {
	.gcf-facts { grid-template-columns: 1fr; }
	.gcf-facts div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--gcf-line); }
}

/* Petite étiquette (« Par défaut », « Particulier »). */
.gcf-badge {
	display: inline-block;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 2px 6px;
	border: 1px solid var(--gcf-line-strong);
	border-radius: 2px;
	color: var(--gcf-muted);
	background: #fff;
	vertical-align: 1px;
}

/* ── Carte ───────────────────────────────────────────────── */
.gcf-card {
	background: #fff;
	border: 1px solid var(--gcf-line);
	border-radius: var(--gcf-radius);
	padding: 32px;
}
@media (max-width: 560px) { .gcf-card { padding: 22px 18px; } }

.gcf-card.gcf-auth { border-top: 3px solid var(--gcf-ink); }

/* Onglets Inscription / Connexion : soulignés. */
.gcf-tabs { display: flex; gap: 28px; border-bottom: 1px solid var(--gcf-line); margin-bottom: 26px; }
.gcf-tab {
	border: 0;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	background: transparent;
	font-family: var(--gcf-sans);
	font-weight: 600;
	font-size: 14px;
	color: var(--gcf-muted);
	padding: 10px 0 12px;
	cursor: pointer;
}
.gcf-tab:hover { color: var(--gcf-ink); }
.gcf-tab.is-active { color: var(--gcf-ink); border-bottom-color: var(--gcf-ink); }
.gcf-panel { display: none; }
.gcf-panel.is-active { display: block; }
.gcf-panel > p { color: var(--gcf-muted); }

/* ── Champs ──────────────────────────────────────────────── */
.gcf-field { margin-bottom: 18px; }
.gcf-field label {
	display: block;
	font-weight: 600;
	font-size: 13px;
	margin-bottom: 6px;
	color: var(--gcf-ink);
}
.gcf-field input[type="text"],
.gcf-field input[type="email"],
.gcf-field input[type="password"],
.gcf-field input[type="tel"],
.gcf-field input[type="date"],
.gcf-field select,
.gcf-field textarea {
	width: 100%;
	min-height: 42px;
	padding: 9px 12px;
	border: 1px solid var(--gcf-line-strong);
	border-radius: var(--gcf-radius);
	font-size: 15px;
	font-family: var(--gcf-sans);
	color: var(--gcf-ink);
	background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.gcf-field textarea { min-height: 130px; resize: vertical; line-height: 1.5; }
.gcf-field textarea.gcf-textarea-sm { min-height: 72px; }
.gcf-field input:focus,
.gcf-field select:focus,
.gcf-field textarea:focus {
	outline: none;
	border-color: var(--gcf-ink);
	box-shadow: 0 0 0 1px var(--gcf-ink);
}
.gcf-hint { font-size: 12.5px; color: var(--gcf-muted); margin: 6px 0 0; }
.gcf-block-hint { margin: 10px 0 14px; }

.gcf-check {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-size: 13px;
	color: var(--gcf-muted);
	margin-bottom: 18px;
}
.gcf-check input { margin-top: 3px; accent-color: var(--gcf-ink); }

/* ── Boutons : sobres et compacts ────────────────────────── */
.gcf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	border: 1px solid var(--gcf-ink);
	border-radius: var(--gcf-radius);
	padding: 11px 18px;
	font-family: var(--gcf-sans);
	font-weight: 600;
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: .01em;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.gcf-app .gcf-btn-primary { background: var(--gcf-ink); color: #fff; }
.gcf-app .gcf-btn-primary:hover { background: var(--gcf-black-h); color: #fff; }
.gcf-app .gcf-btn-ghost { background: #fff; color: var(--gcf-ink); border-color: var(--gcf-line-strong); width: auto; padding: 9px 14px; }
.gcf-app .gcf-btn-ghost:hover { border-color: var(--gcf-ink); background: var(--gcf-surface); color: var(--gcf-ink); }
.gcf-btn:disabled { opacity: .5; cursor: default; }
.gcf-btn-sm { width: auto; padding: 6px 11px; font-size: 12.5px; }
.gcf-app .gcf-btn-ghost.gcf-btn-sm { padding: 6px 11px; font-weight: 500; }

/* ── Alertes : bandeau discret à filet noir ──────────────── */
.gcf-alert {
	padding: 12px 16px;
	border-radius: var(--gcf-radius);
	font-size: 14px;
	margin-bottom: 18px;
	border: 1px solid var(--gcf-line);
	border-left: 3px solid var(--gcf-ink);
	color: var(--gcf-ink);
}
.gcf-alert-error   { background: #fff; }
.gcf-alert-success { background: var(--gcf-surface); }

/* ── Espace connecté ─────────────────────────────────────── */
.gcf-home { padding: 8px 0 16px; }

/* Barre de compte : société à gauche, utilisateur et déconnexion à droite. */
.gcf-topbar {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
	flex-wrap: wrap;
	padding-bottom: 18px;
}
.gcf-account-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gcf-muted); }
.gcf-account-name { display: block; font-family: var(--gcf-serif); font-size: 26px; line-height: 1.15; color: var(--gcf-ink); }
.gcf-account-actions { display: flex; align-items: center; gap: 14px; font-size: 13px; color: var(--gcf-muted); }

/* Recherche générale : au centre de la barre, disponible depuis chaque écran.
   Un seul champ, la loupe posée dedans — et surtout l'habillage natif des
   champs de recherche neutralisé, sans quoi WebKit impose sa pilule grise. */
.gcf-search { position: relative; flex: 1 1 240px; max-width: 400px; margin-bottom: 3px; }
.gcf-app .gcf-search .gcf-search-field {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: 100%;
	height: 38px;
	margin: 0;
	padding: 0 12px 0 34px;
	border: 1px solid var(--gcf-line);
	border-radius: var(--gcf-radius);
	background: var(--gcf-surface);
	font-family: var(--gcf-sans);
	font-size: 13.5px;
	color: var(--gcf-ink);
	transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.gcf-app .gcf-search .gcf-search-field::placeholder { color: var(--gcf-muted); }
.gcf-app .gcf-search .gcf-search-field:focus {
	outline: none;
	background: #fff;
	border-color: var(--gcf-ink);
	box-shadow: 0 0 0 1px var(--gcf-ink);
}
/* Décorations natives de input[type="search"] : toutes retirées. */
.gcf-search .gcf-search-field::-webkit-search-decoration,
.gcf-search .gcf-search-field::-webkit-search-cancel-button,
.gcf-search .gcf-search-field::-webkit-search-results-button,
.gcf-search .gcf-search-field::-webkit-search-results-decoration {
	-webkit-appearance: none;
	display: none;
}
.gcf-app .gcf-search .gcf-search-go {
	position: absolute;
	top: 0;
	left: 0;
	width: 34px;
	height: 38px;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: none;
	color: var(--gcf-muted);
	cursor: pointer;
}
.gcf-app .gcf-search .gcf-search-go:hover { color: var(--gcf-ink); background: none; }
.gcf-app .gcf-search .gcf-search-field:focus ~ .gcf-search-go,
.gcf-search:focus-within .gcf-search-go { color: var(--gcf-ink); }
@media (max-width: 760px) { .gcf-search { order: 3; flex-basis: 100%; max-width: none; } }

/* Navigation : onglets soulignés. */
.gcf-nav {
	display: flex;
	gap: 30px;
	margin-bottom: 30px;
	border-bottom: 1px solid var(--gcf-line);
	overflow-x: auto;
	scrollbar-width: none;
}
.gcf-nav::-webkit-scrollbar { display: none; }
.gcf-app .gcf-nav a {
	flex: none;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	color: var(--gcf-muted);
	padding: 12px 0;
	margin-bottom: -1px;
	border-bottom: 2px solid transparent;
	transition: color .15s ease, border-color .15s ease;
}
.gcf-app .gcf-nav a:hover { color: var(--gcf-ink); }
.gcf-app .gcf-nav a.is-active { color: var(--gcf-ink); font-weight: 600; border-bottom-color: var(--gcf-ink); }

/* Sections de la fiche société : même sous-navigation, pour rester cohérent. */
.gcf-tabpane[hidden] { display: none !important; }
.gcf-subnav.gcf-tabs { margin-top: 0; }
.gcf-save-bar { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--gcf-line); }
.gcf-save-bar .gcf-btn { width: auto; }
.gcf-keys { list-style: none; margin: 8px 0 0; padding: 0; font-size: 12.5px; color: var(--gcf-muted); }
.gcf-keys li { padding: 2px 0; }
.gcf-keys code {
	display: inline-block; min-width: 86px;
	font-size: 12px; color: var(--gcf-ink);
	background: var(--gcf-surface); padding: 1px 5px; border-radius: 2px;
}

/* Second niveau (Ventes) : discret, il ne concurrence pas la barre du haut. */
.gcf-nav.gcf-nav-sub { margin-bottom: 0; }
.gcf-subnav {
	display: flex;
	gap: 18px;
	margin: 12px 0 26px;
	overflow-x: auto;
	scrollbar-width: none;
}
.gcf-subnav::-webkit-scrollbar { display: none; }
.gcf-app .gcf-subnav a {
	flex: none;
	font-size: 12.5px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	color: var(--gcf-muted);
	padding: 3px 0;
	border-bottom: 1px solid transparent;
	transition: color .15s ease, border-color .15s ease;
}
.gcf-app .gcf-subnav a:hover { color: var(--gcf-ink); }
.gcf-app .gcf-subnav a.is-active { color: var(--gcf-ink); font-weight: 600; border-bottom-color: var(--gcf-ink); }

.gcf-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.gcf-form-grid .gcf-col-2 { grid-column: 1 / -1; }
@media (max-width: 640px) { .gcf-form-grid { grid-template-columns: 1fr; } }

/* Champ + bouton (recherche d'entreprise). */
.gcf-inline { display: flex; gap: 8px; align-items: stretch; }
.gcf-inline input { flex: 1; }
.gcf-inline .gcf-btn { width: auto; padding: 0 16px; }

/* Choix exclusif (statut, mode d'acompte). */
.gcf-segment { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 18px; border: 1px solid var(--gcf-line-strong); border-radius: var(--gcf-radius); overflow: hidden; }
.gcf-segment label {
	display: flex; align-items: center; justify-content: center;
	padding: 10px; cursor: pointer;
	font-weight: 600; font-size: 13.5px; color: var(--gcf-muted);
	transition: background-color .15s ease, color .15s ease;
}
.gcf-segment label + input + label { border-left: 1px solid var(--gcf-line-strong); }
.gcf-segment input { position: absolute; opacity: 0; pointer-events: none; }
.gcf-app .gcf-segment input:checked + label { background: var(--gcf-ink); color: #fff; }

/* Logo de la société. */
.gcf-logo-up { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.gcf-logo-prev {
	width: 96px; height: 96px; border-radius: var(--gcf-radius);
	border: 1px solid var(--gcf-line);
	display: flex; align-items: center; justify-content: center;
	overflow: hidden; background: #fff; flex: none;
	color: var(--gcf-muted); font-size: 11px; text-align: center;
}
.gcf-logo-prev img { max-width: 100%; max-height: 100%; }

.gcf-callout { margin-top: 22px; padding: 20px; border-radius: var(--gcf-radius); background: var(--gcf-surface); border: 1px solid var(--gcf-line); }

/* ── Pied (hors thème Faqto) ─────────────────────────────── */
.gcf-foot { text-align: center; font-size: 12px; color: var(--gcf-muted); padding: 26px 0 6px; }
.gcf-foot a { color: var(--gcf-ink); }

/* ── Barre d'outils d'une section ────────────────────────── */
.gcf-toolbar {
	display: flex; justify-content: space-between; align-items: center;
	gap: 12px; flex-wrap: wrap; margin-bottom: 20px;
}
.gcf-app .gcf-toolbar h2 { margin: 0; }
.gcf-toolbar-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* ── Listes (clients, affaires, factures) ────────────────── */
.gcf-tablewrap { overflow-x: auto; }
.gcf-list { width: 100%; border-collapse: collapse; }
.gcf-list th, .gcf-list td { text-align: left; padding: 13px 12px; border-bottom: 1px solid var(--gcf-line); font-size: 14px; vertical-align: middle; }
.gcf-list th {
	font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
	color: var(--gcf-muted); border-bottom-color: var(--gcf-line-strong); padding-top: 10px; padding-bottom: 10px;
}
.gcf-list tbody tr:hover td { background: #fafafa; }
.gcf-list .gcf-cname { font-weight: 600; color: var(--gcf-ink); }
.gcf-list .gcf-actions { text-align: right; white-space: nowrap; }
.gcf-list .gcf-actions .gcf-btn { margin-left: 6px; }
.gcf-list th.gcf-num, .gcf-list td.gcf-num { text-align: right; white-space: nowrap; }
.gcf-list .gcf-link { color: var(--gcf-ink); text-decoration: none; }
.gcf-list .gcf-link:hover { text-decoration: underline; }

.gcf-empty {
	padding: 36px; text-align: center; color: var(--gcf-muted);
	background: var(--gcf-surface); border: 1px solid var(--gcf-line); border-radius: var(--gcf-radius);
}

/* ── Modale ──────────────────────────────────────────────── */
.gcf-modal {
	position: fixed; inset: 0; z-index: 99999;
	background: rgba(14, 14, 16, .55);
	display: none; align-items: flex-start; justify-content: center;
	padding: 48px 16px; overflow: auto;
}
.gcf-modal.is-open { display: flex; }
.gcf-modal-box {
	background: #fff; border-radius: var(--gcf-radius); width: 100%; max-width: 580px;
	padding: 28px 30px; border-top: 3px solid var(--gcf-ink);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
}
/* Aperçu : la fenêtre prend la largeur d'une page, le document respire. */
.gcf-modal-box.is-wide { max-width: 940px; }
.gcf-modal-actions { display: flex; align-items: center; gap: 10px; }
.gcf-app .gcf-modal-actions .gcf-btn { width: auto; }
.gcf-preview-body { border: 1px solid var(--gcf-line); padding: 26px 28px; background: #fff; }
.gcf-preview-body:empty::after { content: '…'; color: var(--gcf-muted); }

.gcf-modal-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--gcf-line); }
.gcf-app .gcf-modal-head h3 { margin: 0; }
.gcf-modal-close {
	border: 0; background: transparent; font-size: 22px; line-height: 1;
	cursor: pointer; color: var(--gcf-muted); padding: 0 2px;
}
.gcf-modal-close:hover { color: var(--gcf-ink); }

/* ── Statuts ─────────────────────────────────────────────── */
.gcf-status {
	display: inline-block;
	font-size: 11.5px; font-weight: 600; letter-spacing: .02em;
	padding: 3px 8px; border-radius: 2px;
	border: 1px solid var(--gcf-line-strong); color: var(--gcf-muted);
	white-space: nowrap;
}
.gcf-status-issued { border-color: var(--gcf-ink); color: var(--gcf-ink); }
.gcf-app .gcf-status-paid { background: var(--gcf-ink); border-color: var(--gcf-ink); color: #fff; }
.gcf-status-cancelled { text-decoration: line-through; }

/* Statuts d'affaire. */
.gcf-deal-deposit_due,
.gcf-deal-balance_due { border-color: var(--gcf-ink); color: var(--gcf-ink); }
.gcf-deal-balance_to_invoice { border-color: var(--gcf-ink); color: var(--gcf-ink); font-weight: 700; }
.gcf-deal-balance_to_invoice::before {
	content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%;
	background: var(--gcf-ink); margin-right: 6px; vertical-align: 1px;
}
.gcf-app .gcf-deal-settled { background: var(--gcf-ink); border-color: var(--gcf-ink); color: #fff; }

/* Statuts de devis : accepté est l'issue heureuse, expiré se lit au premier coup d'œil. */
.gcf-quote-sent { border-color: var(--gcf-ink); color: var(--gcf-ink); }
.gcf-app .gcf-quote-accepted { background: #1e8449; border-color: #1e8449; color: #fff; }
.gcf-quote-refused { text-decoration: line-through; }
.gcf-quote-expired { border-style: dashed; }

.gcf-kind {
	display: inline-block; margin-left: 6px;
	font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	padding: 1px 6px; border: 1px solid var(--gcf-line-strong); border-radius: 2px;
	color: var(--gcf-muted); vertical-align: 1px; white-space: nowrap;
}
.gcf-sub { display: block; font-size: 12.5px; color: var(--gcf-muted); font-weight: 400; }

/* ── Factures reçues ─────────────────────────────────────── */
.gcf-app .gcf-badge.is-paid { background: var(--gcf-ink); border-color: var(--gcf-ink); color: #fff; }
.gcf-late { color: #b91c1c; font-weight: 600; }
.gcf-purchase-alert:empty { display: none; }
.gcf-purchase-alert { margin: 0 0 16px; }
label.gcf-btn { cursor: pointer; }

/* ── Sens de saisie des prix (HT ou TTC) ─────────────────── */
.gcf-pricemode { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0 0 12px; }
.gcf-pricemode-l { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gcf-muted); }
.gcf-pricemode .gcf-hint { margin: 0; }
.gcf-segment-sm { max-width: 240px; }
.gcf-segment-sm label { padding: 6px 14px; font-size: 13px; }

/* ── Tableau de bord ─────────────────────────────────────── */
.gcf-cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.gcf-cols2 > .gcf-card { margin: 0; }
.gcf-chart { width: 100%; height: auto; display: block; margin: 6px 0 2px; }
.gcf-chart-axis { stroke: var(--gcf-line); stroke-width: 1; }
.gcf-chart-l { font-family: var(--gcf-sans); font-size: 11px; fill: var(--gcf-muted); }
.gcf-bar-billed { fill: var(--gcf-ink); }
.gcf-bar-cashed { fill: #b9bcc4; }
.gcf-legend { display: flex; gap: 20px; margin-top: 6px; }
.gcf-legend-i { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--gcf-muted); }
.gcf-swatch { width: 11px; height: 11px; display: inline-block; border-radius: 2px; }
.gcf-swatch.is-billed { background: var(--gcf-ink); }
.gcf-swatch.is-cashed { background: #b9bcc4; }
.gcf-mini td, .gcf-mini th { padding: 9px 10px; font-size: 13.5px; }
.gcf-mini tr:last-child td { border-bottom: 0; }
.gcf-mini .gcf-row-total td { border-top: 1px solid var(--gcf-line-strong); border-bottom: 0; }
.gcf-mini .gcf-sub { margin-top: 2px; }
@media (max-width: 860px) { .gcf-cols2 { grid-template-columns: 1fr; } }

/* ── Éditeurs (facture, affaire) ─────────────────────────── */
.gcf-editor-head { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.gcf-app .gcf-editor-head h2 { margin: 0; }
.gcf-app .gcf-back {
	text-decoration: none; color: var(--gcf-muted);
	font-size: 13px; font-weight: 500;
}
.gcf-app .gcf-back:hover { color: var(--gcf-ink); }

/* ── Champ client avec recherche ─────────────────────────── */
.gcf-combo { position: relative; }
.gcf-combo-list {
	position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 2px);
	max-height: 280px; overflow-y: auto;
	background: #fff; border: 1px solid var(--gcf-line-strong); border-radius: var(--gcf-radius);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .10);
}
.gcf-combo-item { padding: 9px 12px; cursor: pointer; border-bottom: 1px solid var(--gcf-line); }
.gcf-combo-item:last-child { border-bottom: 0; }
.gcf-combo-item.is-active { background: var(--gcf-surface); }
.gcf-combo-item strong { display: block; font-size: 13.5px; font-weight: 600; color: var(--gcf-ink); }
.gcf-combo-item span { display: block; font-size: 12px; color: var(--gcf-muted); margin-top: 1px; }
.gcf-combo-none { padding: 10px 12px; font-size: 12.5px; color: var(--gcf-muted); }

.gcf-client-row { display: flex; gap: 10px; align-items: flex-end; margin-bottom: 18px; }
.gcf-client-row .gcf-field { flex: 1; margin-bottom: 0; }
.gcf-client-row .gcf-btn { margin-bottom: 3px; }

.gcf-franchise-note {
	background: var(--gcf-surface); border-radius: var(--gcf-radius); padding: 10px 14px;
	font-size: 13px; color: var(--gcf-muted); margin-bottom: 18px;
}

.gcf-lines { width: 100%; border-collapse: collapse; margin-bottom: 12px; min-width: 560px; }
.gcf-lines th, .gcf-lines td { padding: 8px 6px; border-bottom: 1px solid var(--gcf-line); font-size: 14px; text-align: left; vertical-align: middle; }
.gcf-lines th { font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gcf-muted); border-bottom-color: var(--gcf-line-strong); }
.gcf-lines input,
.gcf-lines select,
.gcf-lines textarea {
	width: 100%; padding: 8px; border: 1px solid var(--gcf-line-strong); border-radius: var(--gcf-radius);
	font-size: 14px; font-family: var(--gcf-sans); color: var(--gcf-ink); background: #fff;
}
.gcf-lines textarea { display: block; min-height: 38px; line-height: 1.4; resize: vertical; overflow: hidden; }
.gcf-lines input:focus,
.gcf-lines select:focus,
.gcf-lines textarea:focus { outline: none; border-color: var(--gcf-ink); }
.gcf-lines .gcf-line td { vertical-align: top; }
.gcf-lines .gcf-l-ht { white-space: nowrap; font-weight: 600; text-align: right; color: var(--gcf-ink); }
.gcf-lines .gcf-line .gcf-l-ht { padding-top: 17px; }
.gcf-lines td.gcf-num { text-align: right; white-space: nowrap; }
.gcf-lines.is-locked td { vertical-align: top; }
.gcf-lines .gcf-line-ded td { color: var(--gcf-muted); font-style: italic; }
.gcf-col-num { width: 100px; } .gcf-col-vat { width: 110px; } .gcf-col-act { width: 36px; }
/* Colonne « Option » de l'éditeur de devis. */
.gcf-col-opt { width: 60px; text-align: center; }
.gcf-lines td.gcf-col-opt input { accent-color: var(--gcf-ink); width: 16px; height: 16px; }
.gcf-l-del { border: 0; background: transparent; font-size: 20px; color: var(--gcf-muted); cursor: pointer; line-height: 1; width: auto; padding: 0 4px; margin-top: 7px; }
.gcf-l-del:hover { color: var(--gcf-ink); }

.gcf-totals { margin-left: auto; max-width: 340px; margin-top: 14px; }
.gcf-totals .gcf-trow { display: flex; justify-content: space-between; padding: 6px 0; font-size: 14px; }
/* Montant toutes options comprises : informatif, donc en retrait. */
.gcf-totals .gcf-tot-optrow { color: var(--gcf-muted); font-size: 13px; }
.gcf-totals .gcf-tot-optrow strong { font-weight: 500; }
.gcf-totals .gcf-ttc { font-weight: 700; font-size: 17px; color: var(--gcf-ink); border-top: 1px solid var(--gcf-ink); margin-top: 6px; padding-top: 12px; }

.gcf-editor-alert:not(:empty), .gcf-modal-alert:not(:empty) { margin-bottom: 14px; }
.gcf-editor-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.gcf-editor-actions .gcf-btn { width: auto; }

/* ── Document émis ───────────────────────────────────────── */
/* Le document (facture, acompte, solde, avoir) porte ses propres styles : voir GCF_Document. */
@media print {
	body * { visibility: hidden !important; }
	.gcf-doc, .gcf-doc *,
	.gcf-cardsheet, .gcf-cardsheet * { visibility: visible !important; }
	.gcf-doc, .gcf-cardsheet { position: absolute; left: 0; top: 0; width: 100%; }
	/* Les aperçus perdent leur cadre : à l'impression, la feuille est seule. */
	.gcf-cardprev, .gcf-preview-body { border: 0 !important; padding: 0 !important; background: none !important; }
	/* La fenêtre d'aperçu ne doit ni rogner ni décaler le document imprimé. */
	.gcf-modal { position: static !important; display: block !important; padding: 0 !important; background: none !important; overflow: visible !important; }
	.gcf-modal-box { max-width: none !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; }
}

/* Aperçu de la feuille de coordonnées : une page posée sur le fond. */
.gcf-cardprev {
	margin-top: 20px;
	padding: 26px 28px;
	border: 1px solid var(--gcf-line);
	background: #fff;
}

/* ── Recherche d'entreprise ──────────────────────────────── */
.gcf-sirlist:empty { display: none; }
.gcf-sirlist { border: 1px solid var(--gcf-line); border-radius: var(--gcf-radius); margin-top: 8px; max-height: 280px; overflow-y: auto; background: #fff; }
.gcf-sirlist-item {
	display: block; width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--gcf-line);
	background: #fff; padding: 10px 14px; cursor: pointer; font-family: var(--gcf-sans); color: var(--gcf-ink);
}
.gcf-sirlist-item:last-child { border-bottom: 0; }
.gcf-sirlist-item:hover, .gcf-sirlist-item:focus { background: var(--gcf-surface); outline: none; }
.gcf-sirlist-item strong { display: block; font-size: 14px; font-weight: 600; }
.gcf-sirlist-item span { display: block; font-size: 12.5px; color: var(--gcf-muted); margin-top: 2px; }

/* Suggestions d'adresse : superposées au formulaire, qui ne bouge donc pas. */
.gcf-autocomplete { position: relative; }
.gcf-addrlist { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 30; margin-top: 0; box-shadow: 0 10px 24px rgba(0,0,0,.12); }

/* ── Factures d'un client, dépliées sous sa ligne ───────── */
.gcf-subrow { display: none; }
.gcf-subrow.is-open { display: table-row; }
.gcf-subrow > td { background: var(--gcf-surface); padding: 0 0 0 18px; }
.gcf-sublist { width: 100%; border-collapse: collapse; }
.gcf-sublist td { padding: 9px 12px; border-bottom: 1px solid var(--gcf-line); font-size: 13.5px; }
.gcf-sublist tr:last-child td { border-bottom: 0; }
.gcf-sublist .gcf-cname { font-weight: 600; }

/* ── Historique des envois d'un document ───────────────── */
.gcf-sendlog { border: 1px solid var(--gcf-line); border-radius: var(--gcf-radius); padding: 12px 16px; margin: 0 0 18px; background: #fff; }
.gcf-sendlog-h { display: block; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gcf-muted); }
.gcf-sendlog ul { list-style: none; margin: 8px 0 0; padding: 0; }
.gcf-sendlog li { font-size: 13.5px; padding: 3px 0; color: var(--gcf-ink); }
.gcf-sendlog-d { font-variant-numeric: tabular-nums; font-weight: 600; margin-right: 8px; }
.gcf-sendlog-to { color: var(--gcf-muted); }
.gcf-sendlog li.is-warn .gcf-sendlog-d { color: #b91c1c; }
.gcf-sendlog li.is-warn { color: #b91c1c; }

/* ── Affaires : indicateurs, filtres, notes ──────────────── */
.gcf-intro { color: var(--gcf-muted); margin: 0 0 16px; max-width: 760px; }

.gcf-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0; margin-bottom: 22px; border: 1px solid var(--gcf-line); border-radius: var(--gcf-radius); overflow: hidden; }
.gcf-stat { padding: 16px 18px; background: #fff; border-right: 1px solid var(--gcf-line); }
.gcf-stat:last-child { border-right: 0; }
.gcf-stat-k { display: block; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gcf-muted); }
.gcf-stat-v { display: block; font-size: 22px; font-weight: 600; margin-top: 6px; color: var(--gcf-ink); white-space: nowrap; letter-spacing: -.01em; }
.gcf-stat-s { display: block; font-size: 12.5px; color: var(--gcf-muted); margin-top: 2px; }
/* Indicateur à ne pas oublier : fond noir, texte blanc. */
.gcf-app .gcf-stat.is-key { background: var(--gcf-ink); border-right-color: var(--gcf-ink); }
.gcf-app .gcf-stat.is-key .gcf-stat-k,
.gcf-app .gcf-stat.is-key .gcf-stat-v,
.gcf-app .gcf-stat.is-key .gcf-stat-s { color: #fff; }

.gcf-pills { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.gcf-app .gcf-pills a {
	font-size: 13px; font-weight: 500; text-decoration: none;
	color: var(--gcf-text); padding: 5px 11px; border-radius: 2px; border: 1px solid var(--gcf-line-strong);
	transition: border-color .15s ease;
}
.gcf-app .gcf-pills a:hover { border-color: var(--gcf-ink); }
.gcf-app .gcf-pills a.is-active { background: var(--gcf-ink); border-color: var(--gcf-ink); color: #fff; }
.gcf-pills .gcf-count { opacity: .6; margin-left: 4px; }

.gcf-note {
	background: var(--gcf-surface); border-left: 3px solid var(--gcf-ink); border-radius: var(--gcf-radius);
	padding: 12px 16px; font-size: 14px; margin-bottom: 18px; color: var(--gcf-ink);
}
.gcf-note a { color: var(--gcf-ink); font-weight: 600; }
.gcf-app .gcf-note.is-key { background: var(--gcf-ink); color: #fff; font-weight: 600; }
.gcf-app .gcf-note.is-key a { color: #fff; }

.gcf-deal-actions { margin: 0 0 18px; }
.gcf-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px 24px; margin: 6px 0 8px; }
.gcf-meta dt { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gcf-muted); }
.gcf-meta dd { margin: 3px 0 0; font-weight: 500; color: var(--gcf-ink); }
.gcf-app .gcf-section-title {
	font-family: var(--gcf-sans); font-size: 11.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
	color: var(--gcf-ink); margin: 32px 0 12px; padding-bottom: 10px; border-bottom: 1px solid var(--gcf-ink);
}
.gcf-static { padding: 10px 0; font-weight: 500; color: var(--gcf-ink); }

/* ── Encart « à quoi sert une affaire » ──────────────────── */
.gcf-explain { border: 1px solid var(--gcf-line); border-top: 3px solid var(--gcf-ink); border-radius: var(--gcf-radius); padding: 20px 22px; margin-bottom: 22px; background: #fff; }
.gcf-app .gcf-explain-title { font-family: var(--gcf-serif); font-size: 21px; color: var(--gcf-ink); margin-bottom: 8px; }
.gcf-explain-steps {
	list-style: none; counter-reset: gcfx; margin: 4px 0 14px; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0;
	border-top: 1px solid var(--gcf-line); border-bottom: 1px solid var(--gcf-line);
}
.gcf-explain-steps li { counter-increment: gcfx; padding: 12px 16px 12px 0; }
.gcf-explain-steps li + li { padding-left: 16px; border-left: 1px solid var(--gcf-line); }
.gcf-explain-steps li::before {
	content: counter(gcfx, decimal-leading-zero);
	display: block; font-family: var(--gcf-serif); font-size: 18px; color: var(--gcf-ink); margin-bottom: 2px;
}
.gcf-explain-steps strong { display: block; font-size: 14px; color: var(--gcf-ink); }
.gcf-explain-steps span { display: block; font-size: 12.5px; color: var(--gcf-muted); }
.gcf-explain .gcf-hint { margin: 0; }
.gcf-explain .gcf-hint a { color: var(--gcf-ink); font-weight: 600; }
@media (max-width: 640px) {
	.gcf-explain-steps li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--gcf-line); }
}

/* ── Espace client d'un site vitrine (accueil="compact") ─── */
.gcf-auth-wrap { display: grid; grid-template-columns: .95fr 1fr; gap: 64px; align-items: start; max-width: 1060px; margin: 0 auto; padding: 16px 0; }
.gcf-app .gcf-auth-intro h1 { font-size: clamp(32px, 3.6vw, 44px); line-height: 1.1; margin-bottom: 16px; }
.gcf-auth-intro .gcf-lead { font-size: 16.5px; color: var(--gcf-muted); margin: 0 0 20px; }
@media (max-width: 900px) { .gcf-auth-wrap { grid-template-columns: 1fr; gap: 32px; } }

/* ── Mots de passe ────────────────────────────────────────── */
/* Le champ, l'œil qui le relit, et le bouton qui en tire un au sort. */
.gcf-pass-row { display: flex; align-items: stretch; gap: 0; }
.gcf-pass-row input {
	flex: 1 1 auto;
	min-width: 0;
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
	font-family: var(--gcf-sans);
	letter-spacing: .02em;
}
.gcf-pass-eye {
	flex: 0 0 auto;
	width: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	color: var(--gcf-muted);
	border: 1px solid var(--gcf-line-strong);
	border-left: 0;
	border-radius: 0 var(--gcf-radius) var(--gcf-radius) 0;
	cursor: pointer;
}
.gcf-pass-eye:hover { color: var(--gcf-ink); background: var(--gcf-surface); }
.gcf-pass-eye.is-on { color: var(--gcf-ink); background: var(--gcf-surface); }

.gcf-pass-tools {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px 12px;
	margin-top: 8px;
}
.gcf-pass-hint { font-size: 12.5px; color: var(--gcf-muted); flex: 1 1 180px; }

/* Lien d'allure textuelle dans un formulaire (mot de passe oublié, retour). */
.gcf-linkbtn {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: var(--gcf-ink);
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}
.gcf-linkbtn:hover { color: var(--gcf-black-h); }
.gcf-authlink { margin-top: 14px; }

/* ══════════════════════════════════════════════════════════════════════════
   TÉLÉPHONE
   Sur un écran étroit, l'application prend la forme d'une app : une barre
   d'onglets fixée en bas, des tableaux repliés en fiches, et plus un seul
   défilement horizontal — sauf sur les documents, qui gardent leur mise en
   page de page imprimée.
   ══════════════════════════════════════════════════════════════════════════ */

/* Icônes et libellés courts : réservés à la barre d'onglets. */
.gcf-nav-ico, .gcf-nav-short { display: none; }

@media (max-width: 720px) {

	.gcf-app { padding-left: 16px; padding-right: 16px; }

	.gcf-pass-eye { width: 46px; }

	/* ── Barre d'onglets ──────────────────────────────────────────────── */
	.gcf-app .gcf-nav {
		position: fixed;
		z-index: 90;
		left: 0; right: 0; bottom: 0;
		display: flex;
		gap: 0;
		margin: 0;
		padding: 6px 4px;
		padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px));
		background: #fff;
		border-top: 1px solid var(--gcf-line);
		border-bottom: 0;
		box-shadow: 0 -2px 14px rgba(0, 0, 0, .07);
		overflow: visible;
	}
	.gcf-app .gcf-nav a {
		flex: 1 1 0;
		min-width: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2px;
		padding: 7px 2px 5px;
		margin: 0;
		border: 0;
		font-size: 10.5px;
		font-weight: 500;
		line-height: 1.2;
		color: var(--gcf-muted);
	}
	.gcf-app .gcf-nav a.is-active { color: var(--gcf-ink); font-weight: 600; border: 0; }
	.gcf-nav-ico { display: block; }
	.gcf-nav-short { display: block; }
	.gcf-nav-long { display: none; }

	/* La barre flotte au-dessus du contenu : on lui réserve sa place. */
	.gcf-home { padding-bottom: 86px; }

	/* Second niveau : toujours dans le flux, sous le titre. */
	.gcf-subnav { margin: 0 0 20px; }
	.gcf-nav.gcf-nav-sub { margin-bottom: 0; }

	/* ── Barre du haut ────────────────────────────────────────────────── */
	.gcf-topbar { align-items: flex-start; gap: 10px; padding-bottom: 14px; }
	.gcf-account-name { font-size: 21px; }
	.gcf-account-actions { font-size: 12px; gap: 10px; }
	.gcf-search { order: 3; flex-basis: 100%; max-width: none; }

	/* ── Barres d'outils : le bouton principal prend la largeur ───────── */
	.gcf-toolbar { flex-direction: column; align-items: stretch; gap: 12px; }
	.gcf-toolbar-actions { gap: 8px; }
	.gcf-app .gcf-toolbar-actions .gcf-btn { flex: 1 1 auto; justify-content: center; }

	/* ── Tableaux repliés en fiches ───────────────────────────────────── */
	.gcf-tablewrap { overflow-x: visible; }
	.gcf-list thead { display: none; }
	.gcf-list, .gcf-list tbody, .gcf-list tr, .gcf-list td { display: block; width: 100%; }
	.gcf-list tr {
		border: 1px solid var(--gcf-line);
		border-radius: var(--gcf-radius);
		padding: 12px 14px;
		margin-bottom: 10px;
		background: #fff;
	}
	.gcf-list tbody tr:hover td { background: none; }
	.gcf-list td {
		border: 0;
		padding: 3px 0;
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 14px;
		font-size: 14px;
		text-align: right;
	}
	/* L'en-tête de colonne, recopié par le script, sert d'étiquette. */
	.gcf-list td::before {
		content: attr(data-label);
		flex: 0 0 auto;
		font-size: 12px;
		font-weight: 500;
		color: var(--gcf-muted);
		text-align: left;
	}
	.gcf-list td:empty { display: none; }
	/* Première cellule : le titre de la fiche, sur toute la largeur. */
	.gcf-list td:first-child {
		display: block;
		text-align: left;
		padding-bottom: 8px;
		margin-bottom: 6px;
		border-bottom: 1px solid var(--gcf-line);
		font-size: 15px;
	}
	.gcf-list td:first-child::before { display: none; }
	.gcf-list .gcf-cname { white-space: normal; word-break: break-word; }
	.gcf-list .gcf-sub { font-size: 12.5px; }
	.gcf-list th.gcf-num, .gcf-list td.gcf-num { text-align: right; }
	/* Les actions ferment la fiche, alignées à gauche et confortables. */
	.gcf-list td.gcf-actions {
		display: flex;
		justify-content: flex-start;
		flex-wrap: wrap;
		gap: 8px;
		text-align: left;
		padding-top: 10px;
		margin-top: 6px;
		border-top: 1px solid var(--gcf-line);
	}
	.gcf-list td.gcf-actions::before { display: none; }
	.gcf-list .gcf-actions .gcf-btn { margin-left: 0; }

	/* ── Lignes d'un document : une fiche par ligne ───────────────────── */
	.gcf-lines { min-width: 0; }
	.gcf-lines thead { display: none; }
	.gcf-lines, .gcf-lines tbody { display: block; width: 100%; }
	.gcf-lines tr {
		display: grid;
		grid-template-columns: 1fr 1fr auto;
		gap: 8px 10px;
		align-items: end;
		border: 1px solid var(--gcf-line);
		border-radius: var(--gcf-radius);
		padding: 12px 14px;
		margin-bottom: 10px;
	}
	.gcf-lines td { display: block; border: 0; padding: 0; }
	.gcf-lines td::before {
		content: attr(data-label);
		display: block;
		font-size: 11px;
		font-weight: 500;
		color: var(--gcf-muted);
		margin-bottom: 3px;
	}
	/* Désignation et total prennent toute la largeur. */
	.gcf-lines td:first-child { grid-column: 1 / -1; }
	.gcf-lines .gcf-l-ht {
		grid-column: 1 / -1;
		text-align: right;
		padding-top: 6px !important;
		border-top: 1px solid var(--gcf-line);
	}
	.gcf-lines .gcf-l-ht::before { display: inline; margin-right: 8px; }
	.gcf-lines td.gcf-col-opt, .gcf-lines td:last-child { align-self: center; }
	.gcf-lines td:last-child::before { display: none; }
	.gcf-lines .gcf-line td { vertical-align: baseline; }
	.gcf-lines .gcf-line .gcf-l-ht { padding-top: 6px; }
	.gcf-l-del { margin-top: 0; font-size: 24px; padding: 0 8px; }
	/* Lignes figées (acompte, solde) : même présentation, sans champ. */
	.gcf-lines.is-locked tr { grid-template-columns: 1fr 1fr; }

	/* ── Champs : assez grands pour le doigt, sans zoom iOS ───────────── */
	.gcf-field input[type="text"],
	.gcf-field input[type="email"],
	.gcf-field input[type="password"],
	.gcf-field input[type="tel"],
	.gcf-field input[type="date"],
	.gcf-field input[type="number"],
	.gcf-field input[type="search"],
	.gcf-field select,
	.gcf-field textarea,
	.gcf-lines input,
	.gcf-lines select,
	.gcf-lines textarea,
	.gcf-combo-input {
		min-height: 46px;
		font-size: 16px; /* en deçà, iOS agrandit la page à la saisie */
	}
	.gcf-lines input, .gcf-lines select { min-height: 42px; }
	.gcf-app .gcf-btn { min-height: 44px; }
	.gcf-app .gcf-btn-sm { min-height: 38px; }

	/* Client + bouton « nouveau » : l'un sous l'autre. */
	.gcf-client-row { flex-direction: column; align-items: stretch; }
	.gcf-client-row .gcf-btn { margin-bottom: 0; width: 100%; }
	.gcf-inline { flex-wrap: wrap; }
	.gcf-app .gcf-inline .gcf-btn { width: 100%; }

	/* ── Chiffres clés : deux colonnes ────────────────────────────────── */
	.gcf-stats { grid-template-columns: 1fr 1fr; }
	.gcf-stat-v { font-size: 19px; }

	/* ── Fenêtres : plein écran ───────────────────────────────────────── */
	.gcf-modal { padding: 0; }
	.gcf-modal-box {
		max-width: none;
		min-height: 100%;
		border-radius: 0;
		padding: 20px 16px calc(20px + env(safe-area-inset-bottom, 0px));
	}
	.gcf-modal-box.is-wide { max-width: none; }

	/* ── Documents : une page reste une page ──────────────────────────── */
	.gcf-doc-scroll, .gcf-preview-body, .gcf-cardprev { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.gcf-preview-body, .gcf-cardprev { padding: 14px; }
	.gcf-doc, .gcf-cardsheet { min-width: 620px; }

	/* Les actions d'un document émis s'empilent proprement. */
	.gcf-editor-head { gap: 8px; }
	.gcf-app .gcf-editor-head .gcf-btn { flex: 1 1 auto; justify-content: center; }
	.gcf-editor-actions .gcf-btn { flex: 1 1 100%; justify-content: center; }
}
