
.cac-mdn-primo {
  max-width: 1100px;
  margin: 0 auto;
  font-family: Arial, Helvetica, sans-serif;
}
.cac-mdn-primo__heading h2 {
  margin-bottom: 0;
}
.cac-mdn-primo__heading p {
  margin-top: .25rem;
}
.cac-mdn-primo__legend {
  display:flex;
  flex-wrap:wrap;
  gap:16px 24px;
  margin:16px 0;
  padding:12px 14px;
  background:#fff;
  border:1px solid #ddd;
  border-radius:8px;
}
.cac-mdn-primo__legend span {
  display:flex;
  align-items:center;
  gap:7px;
}
.cac-mdn-primo__legend .etat {
  width:18px;
  height:18px;
  display:inline-block;
  border:1px solid #666;
  border-radius:3px;
}
.etat-libre { background:#8bc34a; }
.etat-prereservee { background:#f28c28; } /* orange */
.etat-occupee { background:#e53935; }
.etat-indispo { background:#777; }

.cac-mdn-primo__viewport {
  width:100%;
  overflow:auto;
  background:#f4f7f8;
  border:1px solid #d3d7da;
  border-radius:10px;
  padding:10px;
}
.cac-mdn-plan {
  display:block;
  width:100%;
  height:auto;
  min-width:620px;
  background:#fff;
}
.cac-mdn-plan .salle {
  fill:#fff8df;
  stroke:#555;
  stroke-width:18;
  stroke-linejoin:round;
}
.cac-mdn-plan .table-svg rect {
  fill:#f7f7f2;
  stroke:#666;
  stroke-width:3;
}
.cac-mdn-plan .table-svg text {
  font-size:34px;
  font-weight:700;
  text-anchor:middle;
  dominant-baseline:middle;
  pointer-events:none;
}
.cac-mdn-plan .table-inversee rect {
  stroke-width:5;
}
.cac-mdn-plan .zone-labels text {
  font-size:58px;
  font-weight:700;
  text-anchor:middle;
  fill:#555;
}
.cac-mdn-plan .dimensions line {
  stroke:#777;
  stroke-width:3;
}
.cac-mdn-plan .dimensions text {
  font-size:28px;
  fill:#555;
  text-anchor:middle;
}
.cac-mdn-plan .portes path {
  fill:none;
  stroke:#777;
  stroke-width:4;
}
.cac-mdn-plan .facility-label rect {
  stroke:none;
}
.cac-mdn-plan .facility-label text {
  fill:#fff;
  font-size:24px;
  font-weight:700;
  text-anchor:middle;
}
.cac-mdn-plan .exit-label rect { fill:#149447; }
.cac-mdn-plan .wc-label rect { fill:#1565c0; }
.cac-mdn-plan .stairs rect,
.cac-mdn-plan .stairs line {
  fill:none;
  stroke:#8e235f;
  stroke-width:3;
}
.cac-mdn-plan .stairs text {
  fill:#8e235f;
  font-size:22px;
  font-weight:700;
  text-anchor:middle;
}
.cac-mdn-plan .bar-label text {
  fill:#7a4b00;
  font-size:30px;
  font-weight:700;
  text-anchor:middle;
}
.cac-mdn-primo__note {
  font-size:.95rem;
  color:#555;
}
@media (max-width: 700px) {
  .cac-mdn-primo__viewport { padding:4px; }
}


/* Table Y : réserve admin, jamais une table publique normale */
.cac-mdn-plan .table-reserve-y rect {
  fill: #eceff1;
  stroke: #455a64;
  stroke-width: 5;
  stroke-dasharray: 10 7;
}
.cac-mdn-plan .table-reserve-y text {
  fill: #37474f;
}

.cac-mdn-formulaire{max-width:760px;margin:20px auto}
.cac-mdn-trombine,.cac-mdn-form-primo fieldset{padding:16px 18px;margin-bottom:18px;border:1px solid #d7d7d7;border-radius:8px;background:#fff}
.cac-mdn-form-primo legend{padding:0 8px;font-weight:700}
.cac-mdn-form-primo input[type=text],.cac-mdn-form-primo input[type=email],.cac-mdn-form-primo input[type=tel],.cac-mdn-form-primo select,.cac-mdn-form-primo textarea{width:100%;max-width:560px;box-sizing:border-box;padding:8px}
.cac-mdn-aide{color:#666;font-size:.92em}

.cac-mdn-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.cac-mdn-tva-zone{margin:8px 0 18px;padding:14px;border-left:4px solid #d86b7b;background:#fff7f8}
.cac-mdn-tva-exemple{margin:4px 0 8px;color:#c34f65;font-weight:700}
.cac-mdn-peppol-btn{margin-right:8px}
.cac-mdn-peppol-status{font-weight:700}
.cac-mdn-peppol-status.is-found{color:#2e7d32}
.cac-mdn-peppol-status.is-none{color:#755b00}
.cac-mdn-peppol-status.is-error{color:#b3261e}
.cac-mdn-atelier{margin-bottom:14px;padding:12px 14px;background:#fff3cd;border:1px solid #e3c45b;border-radius:6px}
@media(max-width:650px){.cac-mdn-grid2{grid-template-columns:1fr}}

.cac-mdn-grid-address{display:grid;grid-template-columns:minmax(240px,3fr) 90px 130px minmax(180px,2fr);gap:0 14px}
.cac-mdn-trombine-proposal{margin:8px 0 18px;padding:14px 16px;border:1px solid #d8c8a7;border-radius:8px;background:#fffaf0}
.cac-mdn-proposal-text{margin-top:8px;font-size:1.05em}
.cac-mdn-trombine-proposal button{margin:4px 8px 4px 0}
@media(max-width:760px){.cac-mdn-grid-address{grid-template-columns:2fr 1fr}.cac-mdn-grid-address .postal,.cac-mdn-grid-address .city{grid-column:auto}}

.cac-mdn-trombine-line{display:flex;align-items:flex-start;gap:12px;margin:8px 0 18px}
.cac-mdn-trombine-face{flex-basis:44px;width:44px;height:44px}}


/* Primo 0.2.4 — vraie Trombine, reprise du composant CAC Brocante 7.6.0c */
.cac-mdn-trombine-real{
  flex:0 0 56px;
  width:56px;
  min-height:74px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  filter:drop-shadow(0 4px 4px rgba(0,0,0,.18));
}
.cac-mdn-trombine-real .cac-trombine-mascot{
  position:relative;
  display:block;
  width:50px;
  height:80px;
  transform-origin:50% 75%;
  animation:cac-mdn-trombine-float 3.8s ease-in-out infinite;
}
.cac-mdn-trombine-real .cac-trombine-wire{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
}
.cac-mdn-trombine-real .cac-trombine-wire path{
  fill:none;
  stroke:#9c9ca7;
  stroke-width:10;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(1px 1px 0 #fff);
}
.cac-mdn-trombine-real .cac-trombine-eye{
  position:absolute;
  top:17px;
  width:17px;
  height:17px;
  border:1px solid #d7d7dc;
  border-radius:50%;
  background:#fff;
  box-shadow:inset -2px -2px 3px rgba(0,0,0,.13),0 1px 2px rgba(0,0,0,.2);
  overflow:hidden;
}
.cac-mdn-trombine-real .cac-trombine-eye-left{left:9px}
.cac-mdn-trombine-real .cac-trombine-eye-right{right:9px}
.cac-mdn-trombine-real .cac-trombine-pupil{
  position:absolute;
  left:5px;
  top:5px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#111;
  animation:cac-mdn-trombine-look 9s ease-in-out infinite;
}
.cac-mdn-trombine-real .cac-trombine-lid{
  position:absolute;
  z-index:2;
  left:-2px;
  right:-2px;
  top:-2px;
  height:20px;
  border-radius:50%;
  background:#e8e8ec;
  transform:translateY(-105%);
  transform-origin:top;
  animation:cac-mdn-trombine-blink 6.2s infinite;
}
.cac-mdn-trombine-real .cac-trombine-brow{
  position:absolute;
  top:12px;
  width:16px;
  height:4px;
  border-radius:8px;
  background:#171717;
}
.cac-mdn-trombine-real .cac-trombine-brow-left{left:8px;transform:rotate(-10deg)}
.cac-mdn-trombine-real .cac-trombine-brow-right{right:8px;transform:rotate(10deg)}

@keyframes cac-mdn-trombine-float{
  0%,100%{transform:translate3d(0,0,0) rotate(-1deg)}
  50%{transform:translate3d(0,-5px,0) rotate(1deg)}
}
@keyframes cac-mdn-trombine-blink{
  0%,44%,48%,72%,76%,100%{transform:translateY(-105%)}
  45%,47%,73%,75%{transform:translateY(0)}
}
@keyframes cac-mdn-trombine-look{
  0%,20%,100%{transform:translate(0,0)}
  30%,42%{transform:translate(3px,1px)}
  55%,67%{transform:translate(-2px,1px)}
}
@media(max-width:520px){
  .cac-mdn-trombine-real{flex-basis:48px;width:48px}
  .cac-mdn-trombine-real .cac-trombine-mascot{width:44px;height:70px}
}
@media(prefers-reduced-motion:reduce){
  .cac-mdn-trombine-real .cac-trombine-mascot{animation-duration:7s}
  .cac-mdn-trombine-real .cac-trombine-pupil{animation-duration:14s}
  .cac-mdn-trombine-real .cac-trombine-lid{animation-duration:9s}
}


/* Primo 0.2.8 — validation visuelle TVA */
.cac-mdn-tva-zone{
  transition: border-color .2s ease, background-color .2s ease;
}
.cac-mdn-tva-zone.is-valid{
  border-left-color:#4f9a57;
  background:#f3fbf3;
}
.cac-mdn-tva-zone.is-valid .cac-mdn-tva-exemple{
  display:none;
}


/* Primo 0.2.9 — seuils de catégories */
.cac-mdn-category-warning{
  margin:8px 0 18px;
}
.cac-mdn-category-warning .cac-mdn-trombine-proposal{
  background:#fff8e8;
  border-color:#d7b76d;
}

.cac-mdn-exhibitor-types{display:grid;gap:10px;margin:10px 0 18px}
.cac-mdn-legal-branch{margin:12px 0;padding:14px 16px;border:1px solid #ddd;border-radius:8px;background:#fafafa}
.cac-mdn-discount-status{margin-top:8px}
.cac-mdn-discount-status.is-valid{color:#176b2c;font-weight:700}
.cac-mdn-discount-status.is-invalid{color:#a32626;font-weight:700}


/* Primo 0.3.6 — rendu du plan dans l'administration */
body.wp-admin .cac-mdn-plan-wrap,
body.wp-admin .cac-mdn-plan-shell,
body.wp-admin .cac-mdn-plan-stage {
  background: transparent;
  max-width: 100%;
}

body.wp-admin .cac-mdn-plan-stage svg,
body.wp-admin .cac-mdn-plan-svg {
  display: block;
  width: 100%;
  height: auto;
  max-width: 1100px;
  background: transparent;
}

body.wp-admin .cac-mdn-plan-stage svg rect,
body.wp-admin .cac-mdn-plan-stage svg path,
body.wp-admin .cac-mdn-plan-stage svg polygon,
body.wp-admin .cac-mdn-plan-stage svg circle,
body.wp-admin .cac-mdn-plan-stage svg ellipse {
  vector-effect: non-scaling-stroke;
}


/* Primo 0.3.9 — témoins d'occupation par jour dans le plan SVG
   point gauche = samedi ; point droit = dimanche */
.cac-mdn-day-dots { pointer-events:none; }
.cac-mdn-dot { stroke:#555; stroke-width:1; }
.cac-mdn-dot-free { fill:#8bc53f; }
.cac-mdn-dot-reserved { fill:#f7931e; }
.cac-mdn-dot-occupied { fill:#e53935; }
.cac-mdn-dot-unavailable { fill:#777; }


/* Primo 0.3.10 — pastilles lisibles S/D sur admin et page publique */
.cac-mdn-dot { stroke:#555; stroke-width:1.2; }
.cac-mdn-dot-letter {
  fill:#fff;
  stroke:none;
  font-size:12px;
  font-weight:700;
  font-family:Arial, sans-serif;
  pointer-events:none;
}
.cac-mdn-day-key {
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.cac-mdn-day-key b {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:#4f9f2f;
  color:#fff;
  font-size:13px;
  line-height:1;
}


/* Primo 0.3.11 — témoins S/D replacés à l'intérieur des tables */
.cac-mdn-dot-letter{
  font-size:10px;
  dominant-baseline:middle;
}


/* Primo 0.3.12 — toutes les tables affichent S/D, même lorsqu'elles sont libres */
.cac-mdn-dot-letter{
  fill:#002FA7 !important; /* bleu Klein */
  stroke:none !important;
  font-size:10px;
  font-weight:800;
  font-family:Arial, sans-serif;
  pointer-events:none;
}
.cac-mdn-dot{
  stroke:#555;
  stroke-width:1.15;
}


/* Primo 0.3.13 — lisibilité S/D */
.cac-mdn-dot-letter{
  fill:#ffffff !important;
  stroke:none !important;
  font-size:11px !important;
  font-weight:800 !important;
  font-family:Arial, sans-serif !important;
  pointer-events:none;
}
.cac-mdn-dot{
  stroke:#555 !important;
  stroke-width:1.2 !important;
}


/* Primo 0.3.14 — récapitulatif des tables */
.cac-mdn-table-summary{margin-top:28px;max-width:1200px}
.cac-mdn-table-summary td,.cac-mdn-table-summary th{vertical-align:middle}
.cac-mdn-table-summary label{display:inline-flex;align-items:center;gap:5px;margin-right:10px}
.cac-mdn-status{display:inline-block;padding:4px 9px;border-radius:12px;font-weight:600}
.cac-mdn-status-free{background:#dff2cf}
.cac-mdn-status-reserved{background:#ffe1bd}
.cac-mdn-status-occupied{background:#ffd0d0}
.cac-mdn-status-unavailable{background:#ddd}


/* Primo 0.3.15 — placement manuel depuis le SVG */
.cac-mdn-placement-banner{
  margin:12px 0 20px;
  padding:12px 15px;
  border-left:4px solid #2271b1;
  background:#fff;
}
.cac-mdn-placement-banner .button{margin-left:12px}
.cac-mdn-current-placement td{background:#eaf3ff !important}
.cac-mdn-table-selectable{cursor:pointer}
.cac-mdn-table-selectable:hover > rect,
.cac-mdn-table-selectable:hover > path{
  filter:brightness(.94);
}
.cac-mdn-table-not-selectable{opacity:.48;cursor:not-allowed}
.cac-mdn-table-selected > rect,
.cac-mdn-table-selected > path{
  stroke:#2271b1 !important;
  stroke-width:4px !important;
}
.cac-mdn-table-selected .cac-mdn-day-dots{
  filter:drop-shadow(0 0 3px rgba(34,113,177,.75));
}
.cac-mdn-assignment-form{
  display:flex;
  align-items:center;
  gap:16px;
  margin:14px 0 20px;
  padding:12px 14px;
  background:#fff;
  border:1px solid #ccd0d4;
  max-width:900px;
}


/* Primo 0.3.16 — inscription publique réelle */
.cac-mdn-public-errors{
  margin:12px 0;
  padding:10px 14px;
  border-left:4px solid #d63638;
  background:#fff1f1;
  color:#8a1f21;
}
.cac-mdn-public-errors p{margin:4px 0}
.cac-mdn-code-result{
  margin:8px 0 14px;
  padding:12px 14px;
  border-left:4px solid #46b450;
  background:#f0faef;
}


/* Primo 0.3.17 — visualisation avant acceptation */
.cac-mdn-public-plan-preview{
  max-width:900px;
  margin:10px auto;
}
.cac-mdn-public-proposed-table > rect,
.cac-mdn-public-proposed-table > path{
  stroke:#2271b1 !important;
  stroke-width:5px !important;
  filter:drop-shadow(0 0 4px rgba(34,113,177,.8));
}
.cac-mdn-public-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:18px;
}
.cac-mdn-button-secondary,
.cac-mdn-button-primary{
  display:inline-block;
  padding:8px 14px;
  border:1px solid #2271b1;
  border-radius:3px;
  text-decoration:none;
  cursor:pointer;
}
.cac-mdn-button-secondary{
  background:#fff;
  color:#2271b1;
}
.cac-mdn-button-primary{
  background:#2271b1;
  color:#fff !important;
}


/* Primo 0.3.18 — gratuit + aperçu des e-mails en mode Atelier */
.cac-mdn-payment-free{color:#176b2c;font-weight:700}
.cac-mdn-atelier-mailbox{
  margin:20px 0;padding:16px;border:2px dashed #d28b00;background:#fff9e8
}
.cac-mdn-mail-preview{
  margin:16px 0;padding:14px;border:1px solid #d5d5d5;background:#fff
}
.cac-mdn-mail-preview pre{
  white-space:pre-wrap;word-break:break-word;font-family:Consolas,Menlo,monospace;
  background:#f6f7f7;padding:12px;border:1px solid #e0e0e0
}


/* Primo 0.3.19 — préférence de placement */
.cac-mdn-form-primo textarea[name="preference_placement"]{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

/* Primo 0.3.20 — placement vivant / clôture */
.cac-mdn-closure-box{margin:12px 0 20px;padding:14px;border:1px solid #c3c4c7;background:#fff}
.cac-mdn-closure-box form{margin:8px 0 0}
.cac-mdn-contact-suggestions{position:absolute;z-index:50;background:#fff;border:1px solid #bbb;box-shadow:0 3px 10px rgba(0,0,0,.14);min-width:320px;max-width:520px}.cac-mdn-contact-choice{display:block;width:100%;padding:9px 12px;border:0;border-bottom:1px solid #eee;background:#fff;text-align:left;cursor:pointer}.cac-mdn-contact-choice:hover,.cac-mdn-contact-choice:focus{background:#eef7ff}.cac-mdn-form-primo label{position:relative}.cac-mdn-field-ok input{background:#effaf0!important;border-color:#48a957!important}.cac-mdn-field-missing input{background:#fff0f0!important;border-color:#d63638!important}
.cac-mdn-website-trap{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.cac-mdn-christmas-home{max-width:1080px;margin:28px auto;padding:0 0 22px;border:2px solid #a51d2d;border-radius:16px;background:#fffaf3;text-align:center;font-family:Arial,sans-serif;box-shadow:0 5px 15px #0002;overflow:hidden}.cac-mdn-christmas-home>header{padding:18px;background:linear-gradient(135deg,#861828,#bd2638);color:#fff}.cac-mdn-christmas-home>header span{display:block;font-size:40px}.cac-mdn-christmas-home>header h2{margin:3px 0!important;color:#fff!important;font-size:32px!important}.cac-mdn-christmas-home>div{padding:18px}.cac-mdn-christmas-home h3{margin:0 0 10px!important;color:#244f32!important}.cac-mdn-christmas-home p{font-size:17px;line-height:1.45}.cac-mdn-christmas-home img{display:block;max-width:520px;width:100%;height:auto;margin:18px auto;border-radius:12px;box-shadow:0 4px 14px #0002}.cac-mdn-christmas-home a{display:inline-block}
