/* ch.743 — Simulateur du site (Sim-v3.1) : options avancées d'un tarif ⊕ zones de déplacement. Préfixe « wsm- ».
   Charte du CRM (R119) : actif #34D399 / texte #0F172A · rouge = vrai refus · ambre = avertissement · neutre #64748B. Grilles par CLASSE (R120). Zones tactiles ≥ 44 px (R5). */
.wsm-badge { display: inline-block; margin: 4px 4px 0 0; padding: 2px 8px; border-radius: 999px; background: #ECFDF5; border: 1px solid #A7F3D0; color: #065F46; font-size: 11px; font-weight: 600; white-space: nowrap; }
.wsm-badge.wsm-masque { background: #FFFBEB; border-color: #FDE68A; color: #92400E; }
.wsm-btn-av { min-height: 36px; padding: 0 10px; font-size: 12px; font-weight: 600; border-radius: 8px; border: 1px solid #CBD5E1; background: #FFFFFF; color: #0F172A; cursor: pointer; white-space: nowrap; }
.wsm-btn-av:hover { background: #F1F5F9; }
.wsm-actions-ligne { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }

.wsm-fen .f732-corps { gap: 14px; }
.wsm-fen .f732-corps > * { flex: 0 0 auto; }   /* le corps défile : ses blocs ne rétrécissent jamais (sinon le texte déborde sur le bloc suivant, vu à 375 px) */
.wsm-grille2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.wsm-champ { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.wsm-champ > span { font-size: 13px; font-weight: 700; color: #334155; }
.wsm-champ input, .wsm-champ select, .wsm-champ textarea { min-height: 44px; width: 100%; box-sizing: border-box; border: 1px solid #CBD5E1; border-radius: 10px; padding: 8px 12px; font-size: 14px; background: #FFFFFF; color: #0F172A; }
.wsm-champ input:focus, .wsm-champ select:focus, .wsm-champ textarea:focus { outline: 2px solid #34D399; outline-offset: 1px; border-color: #10B981; }
.wsm-json { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12.5px !important; line-height: 1.45; resize: vertical; white-space: pre; overflow-x: auto; }
.wsm-json.wsm-faux { border-color: #EF4444 !important; background: #FEF2F2 !important; }
.wsm-err { color: #B91C1C; font-size: 12px; min-height: 0; }
.wsm-err:empty { display: none; }
.wsm-inter { display: flex; align-items: flex-start; gap: 12px; padding: 12px; min-height: 44px; border: 1px solid #E2E8F0; border-radius: 12px; background: #FFFFFF; cursor: pointer; }
.wsm-inter input { width: 22px; height: 22px; margin-top: 2px; accent-color: #34D399; flex: 0 0 auto; }
.wsm-inter span { display: flex; flex-direction: column; gap: 2px; font-size: 14px; color: #0F172A; }
.wsm-inter small { color: #64748B; font-size: 12px; }
.wsm-info { font-size: 12.5px; color: #475569; background: #F1F5F9; border: 1px solid #E2E8F0; border-radius: 10px; padding: 10px 12px; }
.wsm-info.wsm-ro { background: #FFFBEB; border-color: #FDE68A; color: #92400E; }

/* Zones de déplacement */
.wsm-siege { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border: 1px solid #E2E8F0; border-radius: 14px; background: #FFFFFF; margin-bottom: 14px; box-shadow: 0 1px 2px rgba(15,23,42,.05); }
.wsm-siege > div:first-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wsm-siege strong { font-size: 15px; color: #0F172A; overflow-wrap: anywhere; }
.wsm-siege small { color: #64748B; font-size: 12px; }
.wsm-etiq { font-size: 12px; font-weight: 700; color: #64748B; text-transform: uppercase; letter-spacing: .03em; }
.wsm-alerte { font-size: 13px; color: #92400E; background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 10px; padding: 8px 12px; overflow-wrap: anywhere; }
.wsm-zones { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px; }
.wsm-zone { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: 14px; border: 1px solid #E2E8F0; background: #FFFFFF; box-shadow: 0 1px 2px rgba(15,23,42,.05), 0 4px 12px rgba(15,23,42,.04); min-width: 0; }
.wsm-zone.wsm-inactive { opacity: .7; background: #F8FAFC; }
.wsm-zone header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wsm-zone h3 { margin: 0; font-size: 16px; font-weight: 800; color: #0F172A; overflow-wrap: anywhere; }
.wsm-etat { flex: 0 0 auto; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.wsm-etat.on { background: #34D399; color: #0F172A; }
.wsm-etat.off { background: #E2E8F0; color: #64748B; }
.wsm-zone dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin: 0; }
.wsm-zone dl div { min-width: 0; }
.wsm-zone dt { font-size: 12px; color: #64748B; }
.wsm-zone dd { margin: 0; font-size: 15px; font-weight: 700; color: #0F172A; font-variant-numeric: tabular-nums; }
.wsm-apercu { margin: 0; font-size: 13px; color: #065F46; background: #ECFDF5; border: 1px solid #A7F3D0; border-radius: 10px; padding: 8px 12px; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.wsm-apercu-bloc { display: flex; flex-direction: column; gap: 8px; }
.wsm-apercu-bloc label { font-size: 13px; color: #334155; font-weight: 600; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.wsm-apercu-bloc input { width: 90px; min-height: 40px; border: 1px solid #CBD5E1; border-radius: 10px; padding: 6px 10px; font-size: 14px; }
.wsm-btn { min-height: 44px; padding: 0 16px; border-radius: 12px; border: 1px solid #10B981; background: #34D399; color: #0F172A; font-size: 14px; font-weight: 700; cursor: pointer; align-self: flex-start; }
.wsm-btn:hover { background: #10B981; }
.wsm-actions { margin-top: 14px; }
.wsm-vide { text-align: center; padding: 40px 12px; color: #64748B; font-size: 14px; }
.wsm-faux-txt { color: #B91C1C; }
.wsm-tableau-defile { overflow-x: auto; -webkit-overflow-scrolling: touch; }

@media (max-width: 767px) {
  .wsm-grille2 { grid-template-columns: minmax(0, 1fr); }
  .wsm-zone dl { grid-template-columns: minmax(0, 1fr); }
  .wsm-btn { width: 100%; }
}
