:root { --matilde-v95-table-rotation:0deg; --matilde-v109-inverse-rotation:0deg; }

#tablet-map-base .tablet-table,
#mobile-map-base .mobile-table,
#sala-canvas-container > [data-mesa-id] {
  transform:rotate(var(--matilde-v95-table-rotation,0deg));
  transform-origin:center center;
}

.matilde-v95-map-dragging { transition:none!important; will-change:transform; }
.matilde-v95-table-round { border-radius:50%!important; }
.matilde-v95-table-square { border-radius:8px!important; }
.matilde-v95-table-rectangle { border-radius:8px!important; }

/* v110: los controles son hijos reales de la mesa. Por eso acompañan a la
   mesa en cada fotograma, sin cálculos paralelos ni salto al soltar. */
.matilde-v109-rotate-controls {
  position:absolute;
  left:-2px;
  right:-2px;
  bottom:-17px;
  z-index:240;
  display:flex;
  align-items:center;
  justify-content:space-between;
  pointer-events:none;
  overflow:visible;
}
.matilde-v95-rotate-control,
.matilde-v109-rotate-control {
  display:flex;
  width:30px;
  height:30px;
  align-items:center;
  justify-content:center;
  padding:0;
  border:2px solid var(--mat-accent,#1CA9CF);
  border-radius:50%;
  background:var(--mat-surface,#fff);
  color:var(--mat-accent,#1CA9CF);
  box-shadow:0 3px 10px rgba(0,0,0,.24);
  pointer-events:auto;
  cursor:pointer;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  -webkit-tap-highlight-color:transparent;
  transform:rotate(var(--matilde-v109-inverse-rotation,0deg));
}
.matilde-v109-rotate-control:active { background:var(--mat-accent,#1CA9CF);color:var(--mat-accent-text,#fff); }
.matilde-v95-rotate-overlay { display:none!important; }

#matilde-v95-shape-modal {
  display:none; position:fixed; inset:0; z-index:1000005; align-items:center; justify-content:center; padding:20px;
  background:rgba(3,10,18,.68); backdrop-filter:blur(4px);
}
#matilde-v95-shape-modal.is-open { display:flex; }
.matilde-v95-shape-card { width:min(520px,100%);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--mat-border,#e5e7eb);border-radius:18px;background:var(--mat-surface,#fff);color:var(--mat-readable-text,#1f2937);box-shadow:0 25px 70px rgba(0,0,0,.35); }
.matilde-v95-shape-head { display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--mat-border,#e5e7eb); }
.matilde-v95-shape-head h3 { margin:0;font-size:19px;font-weight:900; }
.matilde-v95-shape-close { width:38px;height:38px;border:0;border-radius:10px;background:var(--mat-card,#f1f5f9);color:inherit; }
.matilde-v95-shape-options { display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:20px; }
.matilde-v95-shape-option { min-height:150px;border:2px solid var(--mat-border,#e5e7eb);border-radius:14px;background:var(--mat-card,#fff);color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;font-weight:900; }
.matilde-v95-shape-option:hover,.matilde-v95-shape-option.is-active { border-color:var(--mat-accent,#1CA9CF);background:color-mix(in srgb,var(--mat-accent,#1CA9CF) 14%,var(--mat-card,#fff)); }
.matilde-v95-shape-drawing { display:block;width:72px;height:72px;border:4px solid var(--mat-accent,#1CA9CF);background:color-mix(in srgb,var(--mat-accent,#1CA9CF) 22%,transparent); }
.matilde-v95-shape-drawing.round { border-radius:50%; }
.matilde-v95-shape-drawing.square { border-radius:5px; }
.matilde-v95-shape-drawing.rectangle { width:100px;height:62px;border-radius:5px; }
.matilde-v95-shape-note { margin:0;padding:0 20px 20px;color:var(--mat-readable-muted,#6b7280);font-size:12px;text-align:center; }
@media(max-width:560px){.matilde-v95-shape-options{grid-template-columns:1fr}.matilde-v95-shape-option{min-height:105px;flex-direction:row}.matilde-v95-shape-drawing{transform:scale(.75)}}

/* v111: sillas visuales según la capacidad de cada mesa. Se dibujan en las
   tres vistas y acompañan la forma, el tamaño, la posición y la rotación. */
.salovix-table-chairs {
  --salovix-chair-size:16px;
  --salovix-chair-gap:3px;
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  overflow:visible;
  pointer-events:none!important;
  user-select:none;
}
.salovix-table-chair {
  position:absolute;
  width:var(--salovix-chair-size);
  height:var(--salovix-chair-size);
  box-sizing:border-box;
  transform-origin:center center;
  pointer-events:none!important;
  filter:drop-shadow(0 1px 1px rgba(15,23,42,.16));
}
.salovix-table-chair-seat {
  position:absolute;
  left:2px;
  right:2px;
  top:5px;
  bottom:1px;
  border:1.5px solid color-mix(in srgb,var(--mat-accent,#1CA9CF) 78%,#334155);
  border-radius:3px 3px 5px 5px;
  background:color-mix(in srgb,var(--mat-surface,#fff) 82%,var(--mat-accent,#1CA9CF) 18%);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 55%,transparent);
}
.salovix-table-chair-seat::before {
  content:"";
  position:absolute;
  left:50%;
  top:-6px;
  width:calc(100% + 2px);
  height:6px;
  transform:translateX(-50%);
  border:1.5px solid color-mix(in srgb,var(--mat-accent,#1CA9CF) 78%,#334155);
  border-bottom-width:1px;
  border-radius:5px 5px 2px 2px;
  background:color-mix(in srgb,var(--mat-surface,#fff) 78%,var(--mat-accent,#1CA9CF) 22%);
}
.salovix-table-chair-seat::after {
  content:"";
  position:absolute;
  left:2px;
  right:2px;
  bottom:-4px;
  height:4px;
  border-left:1.5px solid color-mix(in srgb,var(--mat-accent,#1CA9CF) 72%,#334155);
  border-right:1.5px solid color-mix(in srgb,var(--mat-accent,#1CA9CF) 72%,#334155);
}
@media (max-width:700px) {
  .salovix-table-chairs { --salovix-chair-size:13px; --salovix-chair-gap:2px; }
}


/* v112: los controles de giro nunca se ven fuera del modo Mover. En /web se
   exige además que el menú exclusivo de edición esté activo. */
.matilde-v109-rotate-controls { display:none !important; }
body:not(.salovix-web-mode).matilde-v95-table-editing[data-matilde-v95-tool="mover"] .matilde-v109-rotate-controls {
  display:flex !important;
}
body.salovix-web-mode.salovix-web-table-tool-active.salovix-web-table-move-active:not(.salovix-web-object-mode) .matilde-v109-rotate-controls {
  display:flex !important;
}
body.salovix-web-mode:not(.salovix-web-table-move-active) .matilde-v109-rotate-controls,
body.salovix-web-mode.salovix-web-object-mode .matilde-v109-rotate-controls {
  display:none !important;
}


/* v113: edición ordenada de la posición de las sillas. Cada silla se puede
   arrastrar a un lado de la mesa y las sillas de ese lado se reparten solas. */
body[data-salovix-web-table-tool="sillas"] .salovix-table-chairs,
body.matilde-v95-table-editing[data-matilde-v95-tool="sillas"] .salovix-table-chairs {
  pointer-events:auto!important;
  z-index:260;
}
body[data-salovix-web-table-tool="sillas"] .salovix-table-chair,
body.matilde-v95-table-editing[data-matilde-v95-tool="sillas"] .salovix-table-chair {
  pointer-events:auto!important;
  cursor:grab;
  touch-action:none;
  filter:drop-shadow(0 2px 3px rgba(15,23,42,.28));
}
body[data-salovix-web-table-tool="sillas"] .salovix-table-chair:hover,
body.matilde-v95-table-editing[data-matilde-v95-tool="sillas"] .salovix-table-chair:hover {
  z-index:5;
  scale:1.12;
}
.salovix-table-chair.is-dragging { opacity:.25; }
.salovix-chair-drag-ghost {
  --salovix-chair-size:20px;
  position:fixed;
  z-index:1000020;
  width:var(--salovix-chair-size);
  height:var(--salovix-chair-size);
  transform:translate(-50%,-50%)!important;
  pointer-events:none;
  filter:drop-shadow(0 5px 8px rgba(15,23,42,.35));
}
.salovix-chair-drop-active { outline:2px dashed color-mix(in srgb,var(--mat-accent,#1CA9CF) 78%,#fff); outline-offset:7px; }
.salovix-chair-drop-top { box-shadow:0 -6px 0 -3px var(--mat-accent,#1CA9CF)!important; }
.salovix-chair-drop-right { box-shadow:6px 0 0 -3px var(--mat-accent,#1CA9CF)!important; }
.salovix-chair-drop-bottom { box-shadow:0 6px 0 -3px var(--mat-accent,#1CA9CF)!important; }
.salovix-chair-drop-left { box-shadow:-6px 0 0 -3px var(--mat-accent,#1CA9CF)!important; }
