/* TAWSA Verify — widget « Je ne suis pas un robot » */
.tv-widget {
  --tv-bg: #FAF8F3; --tv-border: #E6E2D8; --tv-text: #0B1F3A; --tv-muted: #7A828C;
  --tv-box-bg: #FFFFFF; --tv-box-border: #B9B3A6; --tv-accent: #C9A961; --tv-ok: #2E7D4F;
  --tv-ok-bg: #FFFFFF; --tv-err: #B3261E; --tv-radius: 4px;
  font-family: inherit; max-width: 320px; width: 100%; box-sizing: border-box;
}
.tv-widget.tv-theme-tawsa-dark {
  --tv-bg: #0F1E36; --tv-border: #1A2A45; --tv-text: rgba(244,241,234,.92); --tv-muted: rgba(244,241,234,.5);
  --tv-box-bg: #0A1628; --tv-box-border: #3A4A66; --tv-accent: #C9A961; --tv-ok: #C9A961; --tv-ok-bg: #0A1628;
  --tv-err: #FF8A80;
}
.tv-widget.tv-theme-cmme {
  --tv-bg: #F9F7F2; --tv-border: #E2DCCF; --tv-text: #0F1419; --tv-muted: #6B7280;
  --tv-box-bg: #FFFFFF; --tv-box-border: #A8A294; --tv-accent: #0F1419; --tv-ok: #0F1419; --tv-ok-bg: #D4FF3F;
  --tv-err: #B3261E; --tv-radius: 8px;
}
.tv-box {
  display: flex; align-items: center; gap: 14px; padding: 12px 12px 12px 14px; min-height: 70px;
  background: var(--tv-bg); border: 1px solid var(--tv-border); border-radius: var(--tv-radius);
  box-shadow: 0 1px 3px rgba(0,0,0,.06); box-sizing: border-box;
}
.tv-check {
  position: relative; flex: none; width: 28px; height: 28px; box-sizing: border-box; cursor: pointer;
  background: var(--tv-box-bg); border: 2px solid var(--tv-box-border); border-radius: 3px;
  transition: border-color .2s, background .2s, border-radius .25s, width .25s, height .25s;
}
.tv-check:hover { border-color: var(--tv-accent); }
.tv-check:focus-visible { outline: 2px solid var(--tv-accent); outline-offset: 2px; }
.tv-label { flex: 1; font-size: 14px; line-height: 1.3; color: var(--tv-text); user-select: none; }
.tv-brand {
  flex: none; display: flex; flex-direction: column; align-items: center; gap: 2px;
  color: var(--tv-muted); font-size: 8.5px; line-height: 1.15; letter-spacing: .06em;
  text-transform: uppercase; text-align: center; font-weight: 600;
}
.tv-brand svg { width: 26px; height: 26px; color: var(--tv-accent); }
.tv-tick, .tv-spin { position: absolute; inset: 0; display: none; }
.tv-tick svg { width: 100%; height: 100%; color: var(--tv-ok); }
.tv-spin {
  inset: -2px; border-radius: 50%; border: 3px solid var(--tv-border); border-top-color: var(--tv-accent);
  animation: tv-rot .8s linear infinite;
}
.tv-widget[data-state="busy"] .tv-check { border-color: transparent; background: transparent; border-radius: 50%; cursor: default; }
.tv-widget[data-state="busy"] .tv-spin { display: block; }
.tv-widget[data-state="done"] .tv-check {
  border-color: transparent; background: var(--tv-ok-bg); cursor: default; animation: tv-pop .3s ease-out;
}
.tv-widget[data-state="done"] .tv-tick { display: block; }
.tv-widget[data-state="error"] .tv-check { border-color: var(--tv-err); }
.tv-msg { min-height: 0; margin-top: 6px; font-size: 12px; line-height: 1.4; color: var(--tv-err); }
.tv-msg:empty { display: none; }
.tv-widget.tv-shake .tv-box { animation: tv-shake .4s; }
@keyframes tv-rot { to { transform: rotate(360deg); } }
@keyframes tv-pop { 0% { transform: scale(.6); } 70% { transform: scale(1.12); } 100% { transform: scale(1); } }
@keyframes tv-shake { 0%,100% { transform: none; } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
@media (prefers-reduced-motion: reduce) {
  .tv-spin { animation-duration: 2s; }
  .tv-widget[data-state="done"] .tv-check, .tv-widget.tv-shake .tv-box { animation: none; }
}
/* Champ piège anti-spam : masqué par classe (les CSP sans 'unsafe-inline' ignorent style="") */
.tv-hp { position: absolute !important; left: -9999px !important; top: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
