/* ==========================================================================
   Ycéo Tickets – espace client
   Contrastes AA vérifiés : #006a74 / #005960 sur blanc, #4a6064 sur blanc et #eef3f3.
   ========================================================================== */

/* Repère de marque affiché à la place du logo du thème (masqué avec le reste du
   menu en mode application installée, voir standalone_chrome_guard en PHP). */
.yk-standalone-brand { display: none; }
html.yk-standalone .yk-standalone-brand {
	display: flex; align-items: center; gap: 10px; position: fixed; z-index: 9999;
	top: calc(env(safe-area-inset-top, 0px) + 10px);
	left: calc(env(safe-area-inset-left, 0px) + 14px);
	background: #006a74; border-radius: 16px; padding: 6px 16px 6px 6px;
	box-shadow: 0 2px 8px rgba(16,38,42,.3);
}
html.yk-standalone .yk-standalone-brand img { display: block; width: 44px; height: 44px; border-radius: 11px; }
html.yk-standalone .yk-standalone-brand-text { font-weight: 700; font-size: 19px; color: #fff; letter-spacing: -.2px; }
/* Réserve juste assez d'espace sous le bandeau de marque flottant pour que le contenu
   ne passe pas dessous. Le thème ajoute lui-même un padding en haut de la zone de
   contenu (.site-main) : on l'annule ici (vérifié sur le site en production) pour ne
   garder qu'un seul espace maîtrisé. */
html.yk-standalone .site-main { padding-top: 0 !important; }
html.yk-standalone #yceo-tk-app.yceo-tk { padding-top: calc(env(safe-area-inset-top, 0px) + 72px); }

.yceo-tk {
	--yk-teal: #006a74;
	--yk-teal-dark: #005960;
	--yk-teal-soft: #e3f1f2;
	--yk-brand: #00a7b5;
	--yk-lime: #aed500;
	--yk-ink: #10262a;
	--yk-muted: #4a6064;
	--yk-line: #d7e3e4;
	--yk-bg: #eef3f3;
	--yk-green-ink: #0b5d12;
	--yk-green-soft: #e2f3e4;
	--yk-alert: #8a3a3a;
	--yk-btn-bg: #00a7b5;
	--yk-btn-bg-hover: #00909c;
	--yk-btn-text: #000000;
	color: var(--yk-ink);
	font-size: 16px;
	line-height: 1.45;
	-webkit-font-smoothing: antialiased;
}
.yceo-tk *, .yceo-tk *::before, .yceo-tk *::after { box-sizing: border-box; }
/* Jamais de coupure de mot dans les titres et textes de l'interface */
.yceo-tk, .yceo-tk * { -webkit-hyphens: none !important; hyphens: none !important; word-break: normal !important; overflow-wrap: normal !important; }

/* Neutralisation des styles de thème sur les éléments interactifs */
.yceo-tk button,
.yceo-tk input {
	font: inherit;
	letter-spacing: normal;
	text-transform: none;
	text-shadow: none;
	box-shadow: none;
	margin: 0;
	line-height: 1.2;
	-webkit-appearance: none;
	appearance: none;
}
.yceo-tk button { cursor: pointer; }
.yceo-tk button:disabled { opacity: .4; cursor: not-allowed; }
/* Boutons principaux désactivés : pas de transparence (texte illisible pour les malvoyants, 1,9:1),
   mais un fond gris neutre et un texte foncé (6,8:1) — l'état « inactif » reste évident, la consigne
   affichée (ex. « Sélectionnez un ou plusieurs tickets ») reste lisible. */
.yceo-tk .yk-btn-primary:disabled,
.yceo-tk .yk-btn-outline:disabled { opacity: 1; background: #dfe7e8; border-color: #dfe7e8; color: #3b5054; }
.yceo-tk button:focus-visible,
.yceo-tk a:focus-visible,
.yceo-tk input:focus-visible { outline: 3px solid var(--yk-ink); outline-offset: 2px; }
.yceo-tk h1, .yceo-tk h2, .yceo-tk p { margin: 0; }
.yceo-tk .yk-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.yceo-tk .yk-num { font-variant-numeric: tabular-nums; }

.yk-loading { padding: 32px 16px; text-align: center; color: #4a6064; }

/* ---------- Conteneur ---------- */
.yceo-tk .yk-shell { max-width: 480px; margin: 0 auto; background: var(--yk-bg); border-radius: 20px; overflow: clip; }

.yceo-tk .yk-brand { font-weight: 700; font-size: 24px; color: var(--yk-teal); letter-spacing: -.5px; }

/* ---------- Boutons ---------- */
.yceo-tk .yk-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 20px; border-radius: 14px; border: 2px solid transparent; font-weight: 700; font-size: 16px; text-decoration: none; }
.yceo-tk .yk-btn-primary { background: var(--yk-btn-bg); color: var(--yk-btn-text); border-color: var(--yk-btn-bg); }
.yceo-tk .yk-btn-primary:hover:not(:disabled) { background: var(--yk-btn-bg-hover); border-color: var(--yk-btn-bg-hover); color: var(--yk-btn-text); }
.yceo-tk .yk-btn-outline { background: var(--yk-btn-bg); color: var(--yk-btn-text); border-color: var(--yk-btn-bg); }
.yceo-tk .yk-btn-outline:hover:not(:disabled) { background: var(--yk-btn-bg-hover); border-color: var(--yk-btn-bg-hover); color: var(--yk-btn-text); }
.yceo-tk .yk-btn-block { width: 100%; }
.yceo-tk .yk-btn-lg { min-height: 56px; font-size: 17px; border-radius: 16px; }
.yceo-tk .yk-link { background: none; border: 0; padding: 8px 0; min-height: 44px; color: var(--yk-teal-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.yceo-tk .yk-pill { min-height: 44px; padding: 0 16px; border-radius: 22px; }
.yceo-tk .yk-icon-btn { width: 44px; height: 44px; border-radius: 22px; border: 1px solid #c5d6d8; background: #fff; color: var(--yk-ink); display: inline-flex; align-items: center; justify-content: center; padding: 0; }

/* ---------- Connexion ---------- */
.yceo-tk .yk-auth { background: #fff; padding: 28px 24px 32px; display: flex; flex-direction: column; gap: 14px; }
.yceo-tk .yk-h1 { font-size: 26px; font-weight: 700; line-height: 1.2; }
.yceo-tk .yk-lead { color: var(--yk-muted); font-size: 15px; }
.yceo-tk .yk-label { font-weight: 600; font-size: 15px; margin-top: 6px; }
.yceo-tk .yk-input { width: 100%; min-height: 52px; padding: 12px 14px; border: 2px solid #9fbcbf; border-radius: 12px; background: #fff; color: var(--yk-ink); font-size: 17px; }
.yceo-tk .yk-input:focus { border-color: var(--yk-teal); }
.yceo-tk .yk-input[aria-invalid="true"] { border-color: #b3261e; }
.yceo-tk .yk-input-code { font-size: 28px; letter-spacing: 10px; text-align: center; font-variant-numeric: tabular-nums; }
.yceo-tk .yk-error { background: #fbe2e1; color: #7a1f1f; border-radius: 10px; padding: 10px 12px; font-size: 15px; font-weight: 600; }
.yceo-tk .yk-auth-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }

/* ---------- En-tête portefeuille ---------- */
.yceo-tk .yk-head { background: #fff; padding: 16px 20px 0; display: flex; flex-direction: column; gap: 12px; border-bottom: 1px solid var(--yk-line); }
.yceo-tk .yk-head-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.yceo-tk .yk-head-actions { display: flex; align-items: center; gap: 8px; }
.yceo-tk .yk-email { color: var(--yk-muted); font-size: 14px; margin-top: 2px; word-break: break-all; }

/* ---------- Onglets ---------- */
.yceo-tk .yk-tabs { display: flex; gap: 4px; }
.yceo-tk .yk-tab { flex: 1 1 0; min-height: 50px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--yk-muted); font-size: 14px; font-weight: 500; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 0 4px; border-radius: 0; }
.yceo-tk .yk-tab[aria-selected="true"] { color: var(--yk-teal-dark); font-weight: 700; border-bottom-color: var(--yk-teal); }
.yceo-tk .yk-count { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: #e1eaeb; color: var(--yk-ink); font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.yceo-tk .yk-tab[aria-selected="true"] .yk-count { background: var(--yk-teal); color: #fff; }

/* ---------- Contenu ---------- */
.yceo-tk .yk-body { padding: 16px; display: flex; flex-direction: column; gap: 12px; min-height: 260px; }
.yceo-tk .yk-hint { font-size: 14px; color: var(--yk-muted); }
.yceo-tk .yk-hint-strong { font-size: 17px; color: var(--yk-ink); }
.yceo-tk .yk-hint-center { text-align: center; }
.yceo-tk .yk-empty { text-align: center; padding: 28px 12px; color: var(--yk-muted); display: flex; flex-direction: column; align-items: center; gap: 14px; }

.yceo-tk .yk-card { background: #fff; border-radius: 18px; border: 2px solid #fff; padding: 16px 12px; display: flex; flex-direction: column; gap: 12px; }
.yceo-tk .yk-card.is-selected { border-color: var(--yk-teal); }
.yceo-tk .yk-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.yceo-tk .yk-card-title { font-size: 17px; font-weight: 700; line-height: 1.25; }
.yceo-tk .yk-card-sub { font-size: 13px; color: var(--yk-muted); display: block; margin-top: 2px; }
.yceo-tk .yk-tag { font-size: 13px; font-weight: 700; border-radius: 10px; padding: 4px 10px; white-space: nowrap; background: var(--yk-teal-soft); color: var(--yk-teal-dark); }
.yceo-tk .yk-tag-green { background: var(--yk-green-soft); color: var(--yk-green-ink); }
.yceo-tk .yk-tag-grey { background: #e1eaeb; color: #3b5054; }

.yceo-tk .yk-stepper { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.yceo-tk .yk-step { width: 44px; height: 44px; border-radius: 22px; border: 1.5px solid #9fbcbf; background: #fff; color: var(--yk-ink); display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.yceo-tk .yk-step-plus { background: var(--yk-btn-bg); border-color: var(--yk-btn-bg); color: var(--yk-btn-text); }
.yceo-tk .yk-qty { min-width: 28px; text-align: center; font-size: 20px; font-weight: 700; }


.yceo-tk .yk-live-card { width: 100%; text-align: left; border: 0; border-radius: 18px; background: #fff; color: var(--yk-ink); padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.yceo-tk .yk-live-card:hover { background: #f7fbfb; }
.yceo-tk .yk-dot { width: 10px; height: 10px; border-radius: 50%; background: #0b8a1a; flex: 0 0 auto; animation: yk-pulse 1.6s ease-out infinite; }
.yceo-tk .yk-row { display: flex; align-items: center; gap: 10px; }
.yceo-tk .yk-bar { flex: 1 1 auto; height: 6px; border-radius: 3px; background: #e1eaeb; overflow: hidden; }
.yceo-tk .yk-bar > span { display: block; height: 100%; border-radius: 3px; background: #008c13; transition: background-color .3s ease; }
.yceo-tk .yk-bar > span.is-urgent { background: #e02020; }
.yceo-tk .yk-left { font-size: 14px; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.yceo-tk .yk-open { font-size: 14px; font-weight: 700; color: var(--yk-teal-dark); }
.yceo-tk .yk-warn { font-size: 13px; color: #7a1f1f; font-weight: 600; }

.yceo-tk .yk-dead { background: #f7fafa; border: 1px solid var(--yk-line); border-radius: 16px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--yk-muted); }
.yceo-tk .yk-dead strong { color: #3b5054; font-size: 16px; }

.yceo-tk .yk-footer { position: sticky; bottom: 0; background: #fff; border-top: 1px solid var(--yk-line); padding: 12px 16px 16px; }

/* ---------- Couches plein écran (portées dans <body>) ---------- */
html.yk-noscroll, html.yk-noscroll body { overflow: hidden !important; }
.yceo-tk.yk-layer { position: fixed; inset: 0; z-index: 2147483000; }

/* Décompte */
.yceo-tk .yk-overlay { position: absolute; inset: 0; background: rgba(16, 38, 42, .75); display: flex; align-items: flex-end; justify-content: center; }
.yceo-tk .yk-sheet { width: 100%; max-width: 480px; background: #fff; border-radius: 28px 28px 0 0; padding: 28px 24px calc(64px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; max-height: 100%; overflow-y: auto; }
.yceo-tk .yk-ring { position: relative; width: 220px; height: 220px; }
.yceo-tk .yk-ring svg { position: absolute; inset: 0; }
.yceo-tk .yk-ring-fg { transition: stroke-dashoffset 1s linear; }
.yceo-tk .yk-ring-val { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.yceo-tk .yk-ring-val b { font-size: 72px; line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; }
.yceo-tk .yk-ring-val span { font-size: 15px; font-weight: 600; color: var(--yk-muted); }

/* Ticket */
.yceo-tk .yk-screen { position: absolute; inset: 0; background: var(--yk-ink); overflow-y: auto; -webkit-overflow-scrolling: touch; }
.yceo-tk .yk-screen-in { max-width: 420px; margin: 0 auto; padding: 8px 16px 28px; }
.yceo-tk .yk-topbar { display: flex; align-items: center; justify-content: space-between; min-height: 60px; }
.yceo-tk .yk-back { background: transparent; border: 0; color: #fff; font-weight: 600; font-size: 15px; min-height: 44px; display: inline-flex; align-items: center; gap: 4px; padding: 0 12px 0 0; }
.yceo-tk .yk-screen .yk-back:focus-visible,
.yceo-tk .yk-screen .yk-control:focus-visible { outline-color: var(--yk-lime); }
.yceo-tk .yk-ref { color: #b9ccce; font-size: 13px; font-variant-numeric: tabular-nums; }
.yceo-tk .yk-state-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.yceo-tk .yk-state-row .yk-ref { color: #d9f0f2; white-space: nowrap; } /* sans transparence : 5,3:1, lisible par le contrôleur */
.yceo-tk .is-expired .yk-state-row .yk-ref { color: #f3d9d9; }

.yceo-tk .yk-ticket { background: #fff; border-radius: 24px; overflow: hidden; }
.yceo-tk .yk-ticket-head { background: var(--yk-teal); color: #fff; padding: 18px 20px; display: flex; flex-direction: column; gap: 8px; }
.yceo-tk .is-expired .yk-ticket-head { background: var(--yk-alert); }
.yceo-tk .yk-state { font-size: 14px; font-weight: 700; color: #d9f0f2; }
.yceo-tk .yk-ticket-name { font-size: 26px; font-weight: 700; color: #fff; line-height: 1.15; }
.yceo-tk .yk-group { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; background: var(--yk-lime); color: var(--yk-ink); border-radius: 12px; padding: 6px 12px; font-size: 18px; font-weight: 800; }

.yceo-tk .yk-control { position: relative; display: block; width: 100%; height: 284px; border: 0; padding: 0; background: #f2f7f7; overflow: hidden; border-radius: 0; color: var(--yk-ink); }

/* Orbite */
.yceo-tk .yk-orbit { position: absolute; left: 50%; top: 10px; width: 200px; height: 200px; margin-left: -100px; }
.yceo-tk .yk-orbit g { transform-box: view-box; transform-origin: 100px 100px; }
.yceo-tk .yk-o-ring { animation: yk-spin 40s linear infinite; }
.yceo-tk .yk-o1 { animation: yk-spin 7s linear infinite; }
.yceo-tk .yk-o2 { animation: yk-spin-rev 11s linear infinite; }
.yceo-tk .yk-o3 { animation: yk-spin 15s linear infinite; }

/* Logo animé : balancement, respiration séquentielle des 3 formes, reflet lumineux */
.yceo-tk .yk-logo-wrap { position: absolute; left: 50%; top: 60px; width: 118px; height: 100px; margin-left: -59px; display: block; }
.yceo-tk .yk-logo { display: block; width: 118px; height: 100px; transform-origin: 50% 70%; animation: yk-sway 4.2s ease-in-out infinite; overflow: visible; }
.yceo-tk .yk-lp { animation: yk-part 3.6s ease-in-out infinite; }
.yceo-tk .yk-lp-2 { animation-delay: 1.2s; }
.yceo-tk .yk-lp-3 { animation-delay: 2.4s; }
.yceo-tk .yk-sweep { transform-box: view-box; animation: yk-sweep 3.4s ease-in-out infinite; }

/* Horloge sous le logo */
.yceo-tk .yk-clockbox { position: absolute; left: 0; right: 0; top: 214px; display: flex; flex-direction: column; align-items: center; gap: 0; transition: color .15s; }
.yceo-tk .yk-clock { font-size: 28px; font-weight: 800; letter-spacing: -.5px; font-variant-numeric: tabular-nums; line-height: 1.1; }
.yceo-tk .yk-clock-date { font-size: 12px; font-weight: 600; color: var(--yk-muted); }

/* Réaction au toucher */
.yceo-tk .yk-wave { position: absolute; left: 50%; top: 110px; width: 128px; height: 128px; margin: -64px 0 0 -64px; border-radius: 50%; border: 3px solid var(--yk-teal); opacity: 0; pointer-events: none; }
.yceo-tk .yk-wave-2 { border-color: var(--yk-lime); }
.yceo-tk .yk-tap-hint { position: absolute; left: 0; right: 0; bottom: 6px; font-size: 12px; font-weight: 600; color: #3b5054; }
.yceo-tk .yk-control.is-burst .yk-wave { animation: yk-burst .9s ease-out forwards; }
.yceo-tk .yk-control.is-burst .yk-wave-2 { animation-delay: .18s; }
.yceo-tk .yk-control.is-burst .yk-logo-wrap { animation: yk-flip .85s ease-in-out; }
.yceo-tk .yk-control.is-burst .yk-clock { color: var(--yk-teal); }
.yceo-tk .is-expired .yk-orbit g, .yceo-tk .is-expired .yk-logo, .yceo-tk .is-expired .yk-lp, .yceo-tk .is-expired .yk-sweep, .yceo-tk .is-expired .yk-marquee { animation-play-state: paused; }
.yceo-tk .is-expired .yk-logo { filter: grayscale(1); }

.yceo-tk .yk-band { height: 34px; background: var(--yk-ink); overflow: hidden; display: flex; align-items: center; }
.yceo-tk .yk-marquee { display: flex; width: max-content; animation: yk-slide 14s linear infinite; }
.yceo-tk .yk-marquee span { white-space: nowrap; font-size: 13px; font-weight: 700; letter-spacing: 2px; color: var(--yk-lime); padding-right: 0; }

.yceo-tk .yk-remain { padding: 16px 20px 6px; display: flex; flex-direction: column; gap: 8px; }
.yceo-tk .yk-remain-label { font-size: 13px; font-weight: 600; color: var(--yk-muted); }
.yceo-tk .yk-remain-val { font-size: 30px; font-weight: 800; letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
.yceo-tk .yk-remain .yk-bar { height: 8px; border-radius: 4px; }

.yceo-tk .yk-dates { margin: 0; padding: 12px 20px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.yceo-tk .yk-dates dt { font-size: 13px; font-weight: 600; color: var(--yk-muted); }
.yceo-tk .yk-dates dd { margin: 0; font-size: 16px; font-weight: 600; }
.yceo-tk .yk-dates dd.yk-time { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
.yceo-tk .yk-ticket-foot { padding: 4px 20px 20px; }
.yceo-tk .yk-note { margin-top: 14px; text-align: center; font-size: 13px; color: #b9ccce; }
/* Écran de contrôle du ticket : marge généreuse sous la note de bas de page, pour qu'un widget tiers
   (bandeau de cookies, etc.) superposé en bas de l'écran ne la recouvre jamais complètement. */
.yceo-tk .yk-note-spaced { margin-bottom: calc(33px + env(safe-area-inset-bottom, 0px)); }

.yceo-tk .yk-locked { background: #fff; border-radius: 24px; padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }

/* ---------- Animations ---------- */
@keyframes yk-spin { to { transform: rotate(360deg); } }
@keyframes yk-spin-rev { to { transform: rotate(-360deg); } }
@keyframes yk-slide { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes yk-sway { 0%, 100% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-5px); } }
@keyframes yk-part { 0%, 100% { opacity: 1; } 50% { opacity: .6; } }
@keyframes yk-sweep { 0% { transform: translateX(0); } 65%, 100% { transform: translateX(1300px); } }
@keyframes yk-flip { 0% { transform: perspective(500px) rotateY(0) scale(1); } 50% { transform: perspective(500px) rotateY(180deg) scale(1.25); } 100% { transform: perspective(500px) rotateY(360deg) scale(1); } }
@keyframes yk-burst { 0% { transform: scale(.7); opacity: .95; } 100% { transform: scale(2.1); opacity: 0; } }
@keyframes yk-pulse { 0% { box-shadow: 0 0 0 0 rgba(0, 149, 19, .55); } 100% { box-shadow: 0 0 0 10px rgba(0, 149, 19, 0); } }

/* Mouvements réduits : l'animation ralentit fortement mais ne disparaît pas (preuve anti-capture).
   Horloge à la seconde et réaction au toucher restent actives. */
@media (prefers-reduced-motion: reduce) {
	.yceo-tk .yk-o-ring, .yceo-tk .yk-o1, .yceo-tk .yk-o2, .yceo-tk .yk-o3 { animation-duration: 120s; }
	.yceo-tk .yk-logo { animation-duration: 24s; }
	.yceo-tk .yk-lp { animation-duration: 20s; }
	.yceo-tk .yk-sweep { animation-duration: 16s; }
	.yceo-tk .yk-marquee { animation-duration: 90s; }
	.yceo-tk .yk-dot { animation: none; }
	.yceo-tk .yk-ring-fg { transition: none; }
}

@media (min-width: 520px) {
	.yceo-tk .yk-sheet { border-radius: 28px; margin-bottom: 24px; }
	.yceo-tk .yk-overlay { align-items: center; }
}

/* ---------- v0.2 : transferts, informations ---------- */
.yceo-tk .yk-info { background: var(--yk-teal-soft); color: var(--yk-teal-dark); border-radius: 10px; padding: 10px 12px; font-size: 15px; font-weight: 600; }
.yceo-tk .yk-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.yceo-tk .yk-link-icon { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.yceo-tk .yk-link-icon:hover { text-decoration: underline; }
.yceo-tk .yk-sheet-left { text-align: left; align-items: stretch; }
/* Menu « Mon compte » et « Mes notifications » : le bandeau du haut ne sert qu'à loger le bouton
   fermer/retour, pas un titre — on réduit l'espace mort au-dessus du vrai titre de l'écran. */
.yceo-tk .yk-sheet-tight { padding-top: 14px; gap: 6px; }
.yceo-tk .yk-sheet-tight .yk-topbar { min-height: 0; margin-bottom: 2px; }
.yceo-tk .yk-sheet-tight > .yk-h1 { margin-top: 2px; }
.yceo-tk .yk-sheet-form { display: flex; flex-direction: column; gap: 12px; }
.yceo-tk .yk-sheet-form button[type="submit"] { margin-bottom: 6px; }
/* Marge supplémentaire sous le bouton principal des écrans courts (ex. changer d'email) : sur
   certains téléphones Android, le gestionnaire de mots de passe du système (Samsung Pass et
   équivalents) superpose sa propre icône en bas de l'écran, par-dessus la page — hors de notre
   contrôle, mais cette marge réduit le risque de chevauchement visuel avec le bouton. */
.yceo-tk .yk-btn-safe-bottom { margin-bottom: 28px; }
.yceo-tk .yk-btn-code-spacer { height: 18px; }
.yceo-tk .yk-sheet-form .yk-link { align-self: center; }
.yceo-tk .yk-h2 { font-size: 22px; }
.yceo-tk .yk-summary { font-size: 16px; background: var(--yk-bg); border-radius: 12px; padding: 12px 14px; }
.yceo-tk .yk-history { margin-top: 8px; display: flex; flex-direction: column; gap: 8px; }
.yceo-tk .yk-history-title { font-size: 15px; font-weight: 700; color: #3b5054; }
.yceo-tk .yk-history-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.yceo-tk .yk-history-list li { background: #fff; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; margin: 0; }
.yceo-tk .yk-history-main { font-weight: 600; font-size: 14px; word-break: break-all; }

/* ---------- v0.3 : notifications, historique ---------- */
.yceo-tk .yk-btn-sm { min-height: 44px; padding: 0 16px; font-size: 15px; border-radius: 12px; }
.yceo-tk .yk-push { background: #fff; border-radius: 18px; padding: 14px 16px; display: flex; gap: 12px; align-items: flex-start; border: 1px solid var(--yk-line); }
.yceo-tk .yk-push-icon { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; background: var(--yk-teal-soft); color: var(--yk-teal-dark); display: flex; align-items: center; justify-content: center; }
.yceo-tk .yk-push-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.yceo-tk .yk-push-title { font-size: 16px; font-weight: 700; }
.yceo-tk .yk-push-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 4px; }
.yceo-tk .yk-push-msg { font-size: 14px; font-weight: 600; border-radius: 8px; padding: 6px 10px; }
.yceo-tk .yk-push-msg-ok { background: var(--yk-green-soft); color: var(--yk-green-ink); }
.yceo-tk .yk-push-msg-info { background: var(--yk-teal-soft); color: var(--yk-teal-dark); }
.yceo-tk .yk-push-msg-error { background: #fbe2e1; color: #7a1f1f; }
.yceo-tk .yk-history-list li:focus { outline: 3px solid var(--yk-ink); outline-offset: 2px; }

/* ---------- v0.4 : dissuasion de capture ---------- */
.yceo-tk .yk-screen { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.yceo-tk .yk-ticket { position: relative; }
.yceo-tk .yk-wm { position: absolute; inset: 0; z-index: 3; overflow: hidden; pointer-events: none; }
.yceo-tk .yk-wm-inner { position: absolute; left: -40%; top: -20%; width: 180%; height: 140%; display: flex; flex-direction: column; justify-content: space-around; transform: rotate(-24deg); animation: yk-wm-drift 18s linear infinite alternate; }
.yceo-tk .yk-wm-row { display: block; white-space: nowrap; font-size: 13px; font-weight: 700; letter-spacing: .5px; color: rgba(16, 38, 42, .11); font-variant-numeric: tabular-nums; }
.yceo-tk .yk-wm-alt { margin-left: -90px; color: rgba(0, 106, 116, .12); }
.yceo-tk .yk-ticket-head .yk-wm-row { color: rgba(255, 255, 255, .15); }
@keyframes yk-wm-drift { from { transform: rotate(-24deg) translateX(0); } to { transform: rotate(-24deg) translateX(-120px); } }

.yceo-tk .yk-mask { position: absolute; inset: 0; z-index: 5; background: var(--yk-ink); color: #fff; display: none; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; padding: 24px; }
.yceo-tk .yk-mask .yk-mask-title { font-size: 20px; font-weight: 700; }
.yceo-tk .yk-mask .yk-mask-sub { font-size: 14px; font-weight: 500; color: #b9ccce; max-width: 260px; }
.yceo-tk .yk-btn-reveal { margin-top: 14px; min-height: 56px; padding: 0 28px; border-radius: 16px; background: var(--yk-btn-bg); border-color: var(--yk-btn-bg); color: var(--yk-btn-text); font-size: 17px; }
.yceo-tk .yk-btn-reveal:focus-visible { outline-color: #fff; }
.yceo-tk .yk-screen.is-masked .yk-mask { display: flex; }
.yceo-tk .yk-screen.is-masked .yk-ticket > :not(.yk-mask) { filter: blur(18px); }

@media (prefers-reduced-motion: reduce) { .yceo-tk .yk-wm-inner { animation-duration: 90s; } }


/* ---------- v0.5 : boutique, achats et reçus ---------- */
.yceo-tk .yk-price { font-size: 18px; font-weight: 700; white-space: nowrap; }
.yceo-tk .yk-total { font-size: 22px; font-weight: 800; white-space: nowrap; }
.yceo-tk .yk-check { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.45; padding: 4px 0; min-height: 44px; box-sizing: border-box; cursor: pointer; }
.yceo-tk .yk-check input { width: 22px; height: 22px; flex: 0 0 auto; margin-top: 1px; accent-color: #006a74; -webkit-appearance: auto; appearance: auto; }
.yceo-tk .yk-banner { background: #fff; border-left: 4px solid var(--yk-teal); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 3px; font-size: 14px; }
.yceo-tk .yk-banner-ok { border-left-color: #0b8a1a; background: var(--yk-green-soft); }
.yceo-tk .yk-banner-err { border-left-color: #b3261e; background: #fbe2e1; }
.yceo-tk .yk-banner-hint { border-left-color: var(--yk-lime); flex-direction: column; align-items: stretch; gap: 10px; }
.yceo-tk .yk-banner-hint-actions { display: flex; align-items: center; gap: 14px; }
.yceo-tk .yk-banner-hint-actions .yk-btn-sm { flex: 0 0 auto; }
.yceo-tk .yk-banner strong { font-size: 16px; }

.yceo-tk .yk-orders-screen { position: absolute; inset: 0; background: var(--yk-bg); overflow-y: auto; -webkit-overflow-scrolling: touch; }
.yceo-tk .yk-orders-in { max-width: 480px; margin: 0 auto; padding: 4px 16px 28px; }
.yceo-tk .yk-orders-in .yk-body { padding: 12px 0 0; }
.yceo-tk .yk-back-light { background: transparent; border: 0; color: var(--yk-teal-dark); font-weight: 600; font-size: 15px; min-height: 44px; display: inline-flex; align-items: center; gap: 4px; padding: 0 8px 0 0; }

.yceo-tk .yk-receipt { background: #fff; border-radius: 20px; overflow: hidden; }
.yceo-tk .yk-receipt-head { background: var(--yk-teal); color: #fff; padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; }
.yceo-tk .yk-receipt-title { font-size: 16px; font-weight: 700; }
.yceo-tk .yk-receipt-paid { font-size: 13px; font-weight: 700; color: var(--yk-ink); background: var(--yk-lime); border-radius: 10px; padding: 4px 10px; }
.yceo-tk .yk-receipt-meta { padding: 14px 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; border-bottom: 1px solid #e1eaeb; }
.yceo-tk .yk-meta-item { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.yceo-tk .yk-meta-label { font-size: 12px; font-weight: 600; color: var(--yk-muted); }
.yceo-tk .yk-meta-item strong { font-size: 15px; word-break: break-all; }
.yceo-tk .yk-receipt-lines { padding: 4px 18px 0; }
.yceo-tk .yk-receipt-line { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid #e1eaeb; }
.yceo-tk .yk-receipt-line .yk-card-title { display: block; font-size: 15px; }
.yceo-tk .yk-receipt-amount { font-weight: 700; white-space: nowrap; }
.yceo-tk .yk-receipt-totals { padding: 14px 18px 18px; display: flex; flex-direction: column; gap: 6px; }
.yceo-tk .yk-receipt-row { display: flex; justify-content: space-between; font-size: 14px; color: var(--yk-muted); }
.yceo-tk .yk-receipt-total { font-size: 17px; font-weight: 700; color: var(--yk-ink); border-top: 2px solid var(--yk-ink); padding-top: 8px; }
.yceo-tk .yk-receipt-total span:last-child { font-size: 22px; font-weight: 800; }
.yceo-tk .yk-receipt-legal { padding: 0 18px 18px; font-size: 12px; line-height: 1.5; color: var(--yk-muted); }
.yceo-tk .yk-receipt-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; align-items: stretch; }
.yceo-tk .yk-receipt-actions .yk-link { align-self: center; }

/* Reçu imprimable : reprend la mise en page de l'email (bloc dédié ajouté dans <body>) */
.yceo-tk.yk-print-receipt { display: none; }
@media print {
	html.yk-printing body > *:not(#yk-print) { display: none !important; }
	html.yk-printing #yk-print { display: block !important; }
	@page { margin: 12mm; }
	html.yk-printing, html.yk-printing body { background: #ffffff !important; }
	.yceo-tk.yk-print-receipt { -webkit-print-color-adjust: exact; print-color-adjust: exact; color: #10262a; background: #ffffff; font-size: 11pt; }
	.yceo-tk .yk-pr-card { background: #ffffff; }
	.yceo-tk .yk-pr-body { background: #ffffff; color: #10262a; }
	.yceo-tk .yk-pr-lines td, .yceo-tk .yk-pr-lines strong { color: #10262a; }
	.yceo-tk .yk-pr-card { max-width: 17cm; margin: 0 auto; border: 1px solid #d7e3e4; border-radius: 10px; overflow: hidden; }
	.yceo-tk .yk-pr-head { background: #006a74; padding: 12px 18px; display: flex; align-items: center; justify-content: space-between; }
	.yceo-tk .yk-pr-head img { border-radius: 8px; display: block; }
	.yceo-tk .yk-pr-head-title { color: #d9f0f2; font-size: 10pt; }
	.yceo-tk .yk-pr-body { padding: 18px; }
	.yceo-tk .yk-pr-body h1 { font-size: 17pt; margin: 0 0 6px; }
	.yceo-tk .yk-pr-intro { margin: 0 0 14px; font-size: 11pt; }
	.yceo-tk .yk-pr-meta { background: #f4f8f8; border-radius: 8px; padding: 10px 14px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 16px; margin-bottom: 16px; }
	.yceo-tk .yk-pmeta-item span { display: block; font-size: 9pt; color: #4a6064; }
	.yceo-tk .yk-pmeta-item strong { font-size: 11pt; }
	.yceo-tk .yk-pr-lines { width: 100%; border-collapse: collapse; }
	.yceo-tk .yk-pr-lines th { font-size: 9pt; color: #4a6064; text-align: right; border-bottom: 2px solid #10262a; padding-bottom: 5px; font-weight: 400; }
	.yceo-tk .yk-pr-lines th:first-child, .yceo-tk .yk-pr-lines td:first-child { text-align: left; }
	.yceo-tk .yk-pr-lines td { text-align: right; padding: 8px 0; border-bottom: 1px solid #d7e3e4; vertical-align: top; }
	.yceo-tk .yk-pr-detail { display: block; font-size: 9pt; color: #4a6064; font-weight: 400; }
	.yceo-tk .yk-pr-strong { font-weight: 700; }
	.yceo-tk .yk-pr-totals { margin: 12px 0 0 auto; border-collapse: collapse; min-width: 6.5cm; }
	.yceo-tk .yk-pr-totals td { padding: 3px 0; font-size: 10pt; color: #4a6064; }
	.yceo-tk .yk-pr-totals td:last-child { text-align: right; }
	.yceo-tk .yk-pr-total td { font-size: 14pt; font-weight: 700; color: #10262a; border-top: 2px solid #10262a; padding-top: 8px; }
	.yceo-tk .yk-pr-note { border-left: 4px solid #aed500; padding-left: 12px; font-size: 10pt; margin: 16px 0 0; }
	.yceo-tk .yk-pr-footer { background: #10262a; color: #b9ccce; padding: 14px 18px; font-size: 9pt; line-height: 1.5; display: flex; flex-direction: column; }
	.yceo-tk .yk-pr-footer strong { color: #fff; }
	.yceo-tk .yk-pr-footer a { color: #aed500; }
}

.yceo-tk .yk-receipt-logo { display: block; }
.yceo-tk .yk-receipt-head { gap: 10px; }
.yceo-tk .yk-receipt-title { flex-grow: 1; }

.yceo-tk .yk-receipt-note { padding: 0 18px 14px; font-size: 13px; line-height: 1.5; border-left: 4px solid var(--yk-lime); margin: 0 18px 14px; padding: 2px 0 2px 12px; }
.yceo-tk .yk-receipt-footer { background: var(--yk-ink); color: #b9ccce; padding: 14px 18px; font-size: 12px; line-height: 1.5; display: flex; flex-direction: column; gap: 2px; }
.yceo-tk .yk-receipt-footer strong { color: #fff; }
.yceo-tk .yk-receipt-footer a { color: var(--yk-lime); }

/* ---------- v0.7 : info-bulle produit ---------- */
.yceo-tk .yk-head-row-end { justify-content: flex-end; }
.yceo-tk .yk-title-info { display: block; line-height: 1; }
.yceo-tk .yk-title-info .yk-info-btn { margin-right: 4px; }
/* Cible tactile 44×44 conservée pour l'accessibilité, mais rendue invisible et hors du flux
   (::before agrandi) : seule la petite icône visible (28 px) pousse le texte du produit, ce qui
   laisse plus de place au nom sans réduire la zone que l'on peut toucher. */
.yceo-tk .yk-info-btn { position: relative; width: 28px; height: 28px; border: 0; background: transparent; padding: 0; display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; opacity: 1; border-radius: 50%; }
.yceo-tk .yk-info-btn::before { content: ""; position: absolute; inset: -8px; }
.yceo-tk .yk-info-btn:hover, .yceo-tk .yk-info-btn.is-open, .yceo-tk .yk-info-btn[aria-expanded="true"] { opacity: .8; }
.yceo-tk .yk-info-btn svg { display: block; }
.yceo-tk .yk-info-bubble { position: relative; background: var(--yk-ink); color: #fff; border-radius: 12px; padding: 12px 14px; font-size: 14px; font-weight: 400; line-height: 1.45; margin: 0; }
.yceo-tk .yk-info-bubble::before { content: ""; position: absolute; top: -6px; left: 24px; width: 14px; height: 14px; background: var(--yk-ink); transform: rotate(45deg); border-radius: 2px; }

.yceo-tk .yk-head-row { flex-wrap: wrap; margin-bottom: 4px; }
.yceo-tk .yk-head-title-row { flex-wrap: nowrap; align-items: center; gap: 10px; }
.yceo-tk .yk-head-title-row .yk-h1 { margin: 0; font-size: 22px; min-width: 0; }
.yceo-tk .yk-head-title-row .yk-link { flex: 0 0 auto; white-space: nowrap; font-size: 13px; }
.yceo-tk .yk-head-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 8px; }
.yceo-tk .yk-head-links .yk-link { font-size: 14px; }
.yceo-tk .yk-head-links-cta { justify-content: space-between; }
.yceo-tk .yk-head-cta-inline { min-height: 38px; padding: 0 14px; font-size: 13px; text-decoration: none; }

.yceo-tk .yk-head-cta { margin: 6px 0 18px; text-decoration: none; min-height: 46px; font-size: 15px; border-radius: 13px; }
/* Bouton « Acheter » resserré, sur la même ligne que « Mes achats » */
.yceo-tk .yk-head-cta-inline { margin: 0; }

/* Sélecteur de quantité au-dessus (aligné à droite), boutons Activer + Transférer en dessous
   (Activer prioritaire en largeur, Transférer garde son gabarit compact habituel). */
.yceo-tk .yk-card-actions-stack { flex-direction: column; align-items: stretch; gap: 10px; }
.yceo-tk .yk-stepper-row { display: flex; justify-content: flex-end; }
.yceo-tk .yk-buttons-row { display: flex; gap: 8px; }
.yceo-tk .yk-buttons-row .yk-activate-btn { flex: 1 1 0; min-width: 0; margin: 0; }
.yceo-tk .yk-buttons-row .yk-transfer-btn { flex: 0 0 auto; }

/* ---------- v0.9 : installation sur l'écran d'accueil ---------- */
.yceo-tk .yk-head-links-left { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; }
.yceo-tk .yk-install-steps { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 10px; font-size: 15px; line-height: 1.45; text-align: left; }
.yceo-tk .yk-install-steps li { padding-left: 4px; }

/* ---------- v0.15 : mode événement (achat/validation suspendus) ---------- */
.yceo-tk .yk-event-banner { background: #fff; border: 1px solid var(--yk-line); border-radius: 16px; padding: 18px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.yceo-tk .yk-event-image { max-width: 100%; max-height: 220px; border-radius: 12px; object-fit: cover; }
.yceo-tk .yk-event-message { margin: 0; font-size: 16px; font-weight: 600; color: var(--yk-ink); line-height: 1.4; }

/* ---------- v0.16 : menu « Mon compte » et notifications ---------- */
.yceo-tk .yk-menu-trigger { display: flex; flex-direction: column; align-items: center; gap: 3px; border: 0; background: none; color: var(--yk-teal-dark); flex: 0 0 auto; padding: 2px 4px; }
.yceo-tk .yk-menu-trigger span { font-size: 11px; font-weight: 600; line-height: 1; }
.yceo-tk .yk-menu-trigger-icon { width: 34px; height: 34px; border-radius: 50%; background: var(--yk-teal); color: #fff; display: flex; align-items: center; justify-content: center; }
.yceo-tk .yk-menu-list { display: flex; flex-direction: column; gap: 4px; margin: 4px 0 20px; }
.yceo-tk .yk-menu-item { display: flex; align-items: center; gap: 14px; padding: 14px 10px; border: 0; background: none; border-radius: 12px; text-align: left; width: 100%; }
.yceo-tk .yk-menu-item:hover { background: var(--yk-teal-soft); }
.yceo-tk .yk-menu-item-icon { width: 38px; height: 38px; border-radius: 50%; background: var(--yk-teal-soft); color: var(--yk-teal-dark); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.yceo-tk .yk-menu-item-main { flex: 1; display: flex; flex-direction: column; gap: 1px; }
.yceo-tk .yk-menu-item-label { font-weight: 700; font-size: 16px; color: var(--yk-ink); }
.yceo-tk .yk-menu-item-sub { font-size: 13px; color: var(--yk-muted); }
.yceo-tk .yk-menu-item-chevron { color: var(--yk-muted); flex: 0 0 auto; }

/* Écran de connexion : liste « ce que vous pouvez faire », avant le formulaire */
.yceo-tk .yk-feature-list { display: flex; flex-direction: column; gap: 4px; margin: 4px 0 22px; text-align: left; }
.yceo-tk .yk-feature { display: flex; align-items: flex-start; gap: 14px; padding: 8px 2px; }
.yceo-tk .yk-feature-icon { width: 38px; height: 38px; border-radius: 50%; background: var(--yk-teal-soft); color: var(--yk-teal-dark); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.yceo-tk .yk-feature-main { display: flex; flex-direction: column; gap: 1px; padding-top: 6px; }
.yceo-tk .yk-feature-title { font-weight: 700; color: var(--yk-ink); font-size: 15px; }
.yceo-tk .yk-feature-sub { color: var(--yk-muted); font-size: 13.5px; line-height: 1.35; }

/* ---------- v0.17 : suggestion d'installation (encart flottant, non bloquant) ---------- */
.yceo-tk.yk-install-toast {
	position: fixed;
	left: 50%;
	top: calc(14px + env(safe-area-inset-top, 0px));
	transform: translate(-50%, -16px);
	width: min(420px, calc(100vw - 32px));
	z-index: 2147483000;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 10px 28px rgba(16, 38, 42, .28);
	padding: 16px 16px 14px;
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s ease, transform .2s ease;
}
.yceo-tk.yk-install-toast.is-visible { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.yceo-tk .yk-install-toast-close { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border: 0; background: transparent; border-radius: 50%; color: var(--yk-muted); display: inline-flex; align-items: center; justify-content: center; }
.yceo-tk .yk-install-toast-close:hover { background: var(--yk-teal-soft); }
.yceo-tk .yk-install-toast-main { display: flex; align-items: flex-start; gap: 12px; padding-right: 22px; }
.yceo-tk .yk-install-toast-icon { width: 38px; height: 38px; border-radius: 50%; background: var(--yk-teal-soft); color: var(--yk-teal-dark); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.yceo-tk .yk-install-toast-title { margin: 0 0 2px; font-weight: 700; font-size: 15px; color: var(--yk-ink); }
.yceo-tk .yk-install-toast-text { margin: 0; font-size: 13px; color: var(--yk-muted); line-height: 1.4; }
.yceo-tk .yk-install-toast-cta { width: 100%; margin-top: 12px; }
@media (prefers-reduced-motion: reduce) {
	.yceo-tk.yk-install-toast { transition: opacity .01ms; }
}

/* ---------- v0.21 : changement d'email, contacts favoris ---------- */
.yceo-tk .yk-empty-text { color: var(--yk-muted); font-size: 14px; text-align: center; padding: 20px 0; }
.yceo-tk .yk-fav-list { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.yceo-tk .yk-fav-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 4px; border-top: 1px solid var(--yk-line); }
.yceo-tk .yk-fav-item:first-child { border-top: 0; }
.yceo-tk .yk-fav-main { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.yceo-tk .yk-fav-label { font-weight: 700; color: var(--yk-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yceo-tk .yk-fav-email { font-size: 13px; color: var(--yk-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yceo-tk .yk-fav-chips-wrap { text-align: left; }
.yceo-tk .yk-fav-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 2px; }
.yceo-tk .yk-fav-chip { background: var(--yk-teal-soft); color: var(--yk-teal-dark); border: 0; border-radius: 999px; padding: 8px 14px; font-size: 14px; font-weight: 600; min-height: 44px; }
.yceo-tk .yk-fav-chip:hover { background: #d3e9ea; }

/* Onglet Expirés : groupes mensuels repliables */
.yceo-tk .yk-month { background: #fff; border-radius: 14px; margin-bottom: 10px; overflow: hidden; }
.yceo-tk .yk-month-h { margin: 0; font-size: inherit; }
.yceo-tk .yk-month-toggle { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 10px 16px; border: 0; background: none; text-align: left; font-size: 16px; font-weight: 700; color: var(--yk-ink); cursor: pointer; }
.yceo-tk .yk-month-toggle:hover { background: var(--yk-teal-soft); }
.yceo-tk .yk-month-label { flex: 1; }
.yceo-tk .yk-month-toggle .yk-count { background: #e1eaeb; color: #3b5054; }
.yceo-tk .yk-month-chev { display: inline-flex; color: var(--yk-muted); transition: transform .2s ease; }
.yceo-tk .yk-month.is-open .yk-month-chev { transform: rotate(180deg); }
.yceo-tk .yk-month-body { display: flex; flex-direction: column; gap: 8px; padding: 0 10px 12px; }
.yceo-tk .yk-month-body .yk-dead { border: 1px solid var(--yk-line); }
@media (prefers-reduced-motion: reduce) { .yceo-tk .yk-month-chev { transition: none; } }

/* « Ma carte bancaire » : carte expirée — fond rouge, texte noir (contraste 5,8:1, lisible par tous) */
.yceo-tk .yk-card-expired { background: #f04b4b; color: #000; font-weight: 700; font-size: 16px; text-align: center; border-radius: 12px; padding: 14px 16px; margin: 0 0 12px; }
