/* Plan de salle paramétrable — V4.2.9 */
.cbj-room-top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.cbj-room-metrics{font-size:12px;color:#786957;margin-bottom:12px}
.cbj-room-board{background:#eae5dd;overflow:hidden;max-height:none!important}
.cbj-room-board::after{display:none}
.cbj-room-floor{position:absolute;inset:0;z-index:0;background:#fdfaf5;background-image:linear-gradient(to right,#e7dfd4 1px,transparent 1px),linear-gradient(to bottom,#e7dfd4 1px,transparent 1px);background-size:39px 39px;border:3px solid #907c64;box-sizing:border-box;pointer-events:none}
.cbj-room-measure{position:absolute;z-index:2;font-size:11px;background:#ffffffe8;color:#776451;padding:2px 5px;border-radius:4px;pointer-events:none}
.cbj-room-width{top:3px;left:50%}.cbj-room-length{left:5px;top:48%}
.cbj-room-table{z-index:3!important;min-width:0;min-height:0;padding:4px;box-sizing:border-box;overflow:visible;box-shadow:0 3px 11px #362b2022}
.cbj-room-table.cbj-shape-round,.cbj-room-table.cbj-shape-square,.cbj-room-table.cbj-shape-rect,.cbj-room-table.cbj-shape-rect-vertical{width:unset;height:unset}
.cbj-room-table.cbj-room-dragging{z-index:8!important}
.cbj-room-table .cbj-room-name{font-size:11px;max-height:30px;overflow:hidden;line-height:1.15}
.cbj-room-table .cbj-room-count{font-size:9px}
.cbj-room-controls{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:max-content;max-width:200px;border:1px solid #c9b69e;border-radius:8px;padding:3px;background:#fffefa;box-shadow:0 3px 9px #0002;display:none;gap:3px;flex-direction:row!important;z-index:10}
.cbj-room-table:hover .cbj-room-controls,.cbj-room-table:focus-within .cbj-room-controls,.cbj-room-table.cbj-room-dragging .cbj-room-controls{display:flex}
.cbj-room-size{border:1px solid #c8b9a3;border-radius:7px;padding:4px 6px;background:#f6f0e6;font-size:10px;color:#332a20;cursor:pointer;white-space:nowrap}
.cbj-room-fixture{position:absolute;z-index:2;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #548294;background:#cae1e3b8;border-radius:8px;padding:3px;text-align:center;color:#244c54;transform:translate(-50%,-50%);overflow:visible}
.cbj-room-fixture span{font-size:18px}.cbj-room-fixture strong{font-size:11px;line-height:1.15;overflow-wrap:anywhere}
.cbj-room-fixture.cbj-fixture-door{background:#f3ebcfb5;border-color:#a18b4f}
.cbj-room-fixture.cbj-fixture-column{background:#c6c3c1;border-color:#726c65}
.cbj-room-fixture.cbj-room-dragging{z-index:8}
.cbj-fixture-controls{position:absolute;top:100%;left:50%;transform:translateX(-50%);display:none;gap:2px;background:white;padding:4px;border:1px solid #a9afb1;border-radius:7px;z-index:10}
.cbj-room-fixture:hover .cbj-fixture-controls,.cbj-room-fixture:focus-within .cbj-fixture-controls{display:flex}
.cbj-fixture-controls button{border:1px solid #b9c7c8;border-radius:5px;background:#f7faf9;cursor:pointer;touch-action:manipulation}
.cbj-fixture-controls [data-fixture-drag]{touch-action:none;cursor:grab}
.cbj-room-top-actions .btn{white-space:nowrap}


/* V4.2.10 — poignées visibles uniquement en mode Configurer la salle. */
.cbj-room-scroll{overflow:auto;max-height:min(78vh,900px);padding:15px 15px 28px;box-sizing:border-box;background:#f0ede8;border:1px solid #e0d6c9}
.cbj-room-board{overflow:visible;max-height:none;flex-shrink:0}
.cbj-room-edit-hint{margin:0 0 12px;padding:11px 14px;background:#f5f1e9;border:1px solid #cbb79e;border-radius:10px;color:#5c4737;font-size:13px;line-height:1.4}
.cbj-resize-grip{position:absolute;z-index:20;display:block;box-sizing:border-box;background:#fffdf7;border:2px solid #2f6a94;border-radius:5px;width:15px;height:15px;padding:0;cursor:move;touch-action:none;box-shadow:0 1px 5px #0004}
.cbj-resize-grip:hover,.cbj-resize-grip:focus-visible{background:#c0ecff;outline:2px solid #15557f;outline-offset:2px}
.cbj-room-board>[data-room-resize]{z-index:40;width:22px;height:22px;border-width:3px;border-radius:6px;background:#e9f3fa}
.cbj-resize-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:ns-resize}
.cbj-resize-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:ns-resize}
.cbj-resize-e{right:0;top:50%;transform:translate(50%,-50%);cursor:ew-resize}
.cbj-resize-w{left:0;top:50%;transform:translate(-50%,-50%);cursor:ew-resize}
.cbj-resize-ne{right:0;top:0;transform:translate(50%,-50%);cursor:nesw-resize}
.cbj-resize-nw{left:0;top:0;transform:translate(-50%,-50%);cursor:nwse-resize}
.cbj-resize-se{right:0;bottom:0;transform:translate(50%,50%);cursor:nwse-resize}
.cbj-resize-sw{left:0;bottom:0;transform:translate(-50%,50%);cursor:nesw-resize}
.cbj-room-resizing{outline:3px solid #2877b1;outline-offset:0;z-index:12!important}
.cbj-resize-measure,.cbj-resize-room-measure{position:absolute;z-index:25;left:50%;bottom:100%;transform:translate(-50%,-9px);background:#1f4f75;color:white;font:700 12px Arial,sans-serif;border-radius:7px;padding:5px 9px;white-space:nowrap;pointer-events:none;box-shadow:0 2px 9px #0003}
.cbj-resize-room-measure{z-index:50;left:50%;top:35px;bottom:auto;transform:translateX(-50%);font-size:15px}
.cbj-room-table:has(> .cbj-resize-grip){outline:1px dashed #5687a8;outline-offset:3px}
.cbj-room-table:has(> .cbj-resize-grip) .cbj-room-controls{display:none}
.cbj-room-table:has(> .cbj-resize-grip):hover .cbj-room-controls,
.cbj-room-table:has(> .cbj-resize-grip):focus-within .cbj-room-controls{display:flex}
.cbj-room-table:has(> .cbj-resize-grip){cursor:default}
.cbj-room-board:has(> [data-room-resize]) .cbj-room-floor{border-color:#2f6a94}
@media(max-width:680px){.cbj-room-scroll{padding:16px 15px 26px}.cbj-resize-grip{width:21px;height:21px}}

/* V4.2.11 : poignées plus faciles à attraper, sans sélection de texte. */
.cbj-room-board,.cbj-room-table,.cbj-resize-grip{user-select:none;-webkit-user-select:none}
.cbj-resize-grip:active{background:#72cbfa;border-color:#0c5f8f}
@media(pointer:coarse){.cbj-resize-grip{width:24px;height:24px}.cbj-room-board>[data-room-resize]{width:30px;height:30px}}

/* V4.2.12 — saisir directement n'importe quel endroit des quatre bords de la salle. */
.cbj-room-scroll{padding:28px 32px 42px;overscroll-behavior:contain}
.cbj-room-board{touch-action:pan-x pan-y}
.cbj-room-board > .cbj-resize-grip[data-room-resize]{
  z-index:42;width:28px;height:28px;border:2px solid #28739f;background:rgba(211,238,252,.83);
  box-shadow:0 1px 7px #17385054;touch-action:none;user-select:none;-webkit-user-select:none;
}
/* Les rails couvrent le bord entier, pas uniquement la petite poignée centrale. */
.cbj-room-board > .cbj-resize-grip.cbj-resize-n,
.cbj-room-board > .cbj-resize-grip.cbj-resize-s{
  left:29px;right:29px;width:auto;height:24px;border-radius:7px;
  background:rgba(47,106,148,.1);border-color:rgba(47,106,148,.42);
}
.cbj-room-board > .cbj-resize-grip.cbj-resize-n{top:0;bottom:auto;transform:translateY(-50%)}
.cbj-room-board > .cbj-resize-grip.cbj-resize-s{top:auto;bottom:0;transform:translateY(50%)}
.cbj-room-board > .cbj-resize-grip.cbj-resize-e,
.cbj-room-board > .cbj-resize-grip.cbj-resize-w{
  top:29px;bottom:29px;height:auto;width:24px;border-radius:7px;
  background:rgba(47,106,148,.1);border-color:rgba(47,106,148,.42);
}
.cbj-room-board > .cbj-resize-grip.cbj-resize-e{right:0;left:auto;transform:translateX(50%)}
.cbj-room-board > .cbj-resize-grip.cbj-resize-w{left:0;right:auto;transform:translateX(-50%)}
.cbj-room-board > .cbj-resize-grip.cbj-resize-ne{right:0;top:0;left:auto;bottom:auto;transform:translate(50%,-50%)}
.cbj-room-board > .cbj-resize-grip.cbj-resize-nw{left:0;top:0;right:auto;bottom:auto;transform:translate(-50%,-50%)}
.cbj-room-board > .cbj-resize-grip.cbj-resize-se{right:0;bottom:0;left:auto;top:auto;transform:translate(50%,50%)}
.cbj-room-board > .cbj-resize-grip.cbj-resize-sw{left:0;bottom:0;right:auto;top:auto;transform:translate(-50%,50%)}
/* Un repere central rend la zone cliquable evidente pour l'utilisateur. */
.cbj-room-board > .cbj-resize-grip.cbj-resize-n::after,.cbj-room-board > .cbj-resize-grip.cbj-resize-s::after,
.cbj-room-board > .cbj-resize-grip.cbj-resize-e::after,.cbj-room-board > .cbj-resize-grip.cbj-resize-w::after{
 content:'⋮';display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(90deg);
 width:40px;height:14px;line-height:12px;text-align:center;border-radius:8px;
 background:#2474a5;color:white;font:bold 18px Arial;pointer-events:none;
}
.cbj-room-board > .cbj-resize-grip.cbj-resize-e::after,.cbj-room-board > .cbj-resize-grip.cbj-resize-w::after{transform:translate(-50%,-50%)}
.cbj-room-board > .cbj-resize-grip:hover,
.cbj-room-board > .cbj-resize-grip:focus-visible{
 background:rgba(95,193,255,.38);border-color:#0b5b88;box-shadow:0 1px 8px #17385070;
}
.cbj-room-board.cbj-room-resizing > .cbj-resize-grip{pointer-events:auto}
@media(max-width:680px){.cbj-room-scroll{padding:28px 32px 42px}}

/* V4.2.13 : laisser les prises actives quand la souris est capturee par le plan. */
.cbj-room-board.cbj-room-resizing > .cbj-resize-grip{pointer-events:auto!important}

/* V4.2.15 : capture directe sur les poignées, comme sur les tables. */
.cbj-room-board > [data-room-resize],.cbj-room-table > [data-table-resize]{touch-action:none}

/* V4.2.17 — poignée de taille de chaque élément de salle, en mode configuration seulement. */
.cbj-room-fixture > .cbj-resize-grip{touch-action:none;z-index:21;width:17px;height:17px;background:#f3fdff;border-color:#307389;}
.cbj-room-fixture:has(> [data-fixture-resize]){outline:2px dashed #48899f;outline-offset:2px;}
.cbj-room-fixture.cbj-room-resizing{z-index:18!important;}
.cbj-room-fixture.cbj-room-resizing > .cbj-resize-measure{z-index:55;}
.cbj-room-fixture .cbj-fixture-controls{z-index:10;}
@media(pointer:coarse){.cbj-room-fixture > .cbj-resize-grip{width:23px;height:23px}}
