/* fonctions/espaces/vue-ensemble.css — vue d'ensemble des 4 tableaux
   Extrait de styles.css à l'étape 8 du découpage. L'ordre de chargement (index.html) est celui
   de l'ancienne feuille : à spécificité égale, la dernière règle l'emporte (voir CARTE.md, CSS). */
 /* ===== Vue d'ensemble des 4 tableaux (Ctrl+Bas / Ctrl+Haut) ===== */
 .workspace-overview{position:fixed;inset:0;z-index:8500;display:flex;align-items:center;justify-content:center;padding:calc(64.5px * var(--ui-scale-factor)) calc(34.5px * var(--ui-scale-factor)) calc(28.5px * var(--ui-scale-factor));background:rgba(0,0,0,0);opacity:0;pointer-events:none;transition:opacity .08s linear,background-color .42s cubic-bezier(.2,.82,.18,1);perspective:calc(1050px * var(--ui-scale-factor));}
 .workspace-overview.open{opacity:1;pointer-events:auto;background:linear-gradient(135deg,var(--board-bg-1),var(--board-bg-2));}
 .overview-grid{width:min(calc(1125px * var(--ui-scale-factor)),94vw);height:min(calc(615px * var(--ui-scale-factor)),82vh);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:calc(16.5px * var(--ui-scale-factor));transform:scale(1);opacity:1;}
 .workspace-overview.open .overview-grid{transform:scale(1);opacity:1;}
 .overview-board{position:relative;overflow:hidden;border:calc(1px * var(--ui-scale-factor)) solid rgba(255,255,255,.14);border-radius:calc(13.5px * var(--ui-scale-factor));background:rgba(13,17,25,.88);box-shadow:0 calc(13.5px * var(--ui-scale-factor)) calc(37.5px * var(--ui-scale-factor)) rgba(0,0,0,.25);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;}
 .overview-board.active{border-color:rgba(255,255,255,.14);box-shadow:0 calc(13.5px * var(--ui-scale-factor)) calc(37.5px * var(--ui-scale-factor)) rgba(0,0,0,.25);}
 /* La sélection change uniquement le contour, jamais la taille du tableau.
 L'animation d'ouverture finit à l'échelle 1 : conserver cette même taille
 évite un saut au premier réaffichage après un transfert de liste. */
 .overview-board.selected{border-color:rgba(255,255,255,.88);box-shadow:0 0 0 calc(1.5px * var(--ui-scale-factor)) rgba(255,255,255,.16),0 calc(16.5px * var(--ui-scale-factor)) calc(43.5px * var(--ui-scale-factor)) rgba(0,0,0,.42);}
 /* Passage d’une carte vers le tableau voisin depuis la vue normale. */
 /* Zones de passage entre tableaux : compactes, fondues et volontairement discrètes. */
 .card-board-edge{position:fixed;top:50%;width:calc(54px * var(--ui-scale-factor));height:calc(99px * var(--ui-scale-factor));z-index:8500;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transform:translateY(-50%);transition:opacity .18s ease;}
 .card-board-edge.left{left:0}.card-board-edge.right{right:0}
 .card-board-edge.visible{opacity:1}
 .card-board-edge .edge-symbol{width:calc(22.5px * var(--ui-scale-factor));height:calc(39px * var(--ui-scale-factor));display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 calc(1.5px * var(--ui-scale-factor)) calc(6px * var(--ui-scale-factor)) rgba(0,0,0,.34));opacity:.72;animation:cardEdgePulse 1.15s cubic-bezier(.4,0,.2,1) infinite;transform-origin:center;}
 .card-board-edge .edge-symbol svg{width:100%;height:100%;overflow:visible;}
 .card-board-edge .edge-symbol path{fill:none;stroke:rgba(255,255,255,.82);stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
 .card-board-edge.hot .edge-symbol{opacity:.84;filter:drop-shadow(0 0 calc(5.25px * var(--ui-scale-factor)) rgba(255,255,255,.16)) drop-shadow(0 calc(1.5px * var(--ui-scale-factor)) calc(6px * var(--ui-scale-factor)) rgba(0,0,0,.34));}
 @keyframes cardEdgePulse{0%,100%{transform:scale(.94);opacity:.62}50%{transform:scale(1.07);opacity:.82}}
 .overview-title{height:calc(30px * var(--ui-scale-factor));display:flex;align-items:center;padding:0 calc(11.25px * var(--ui-scale-factor));font-size:calc(11px * var(--ui-scale-factor));font-weight:700;letter-spacing:.01em;border-bottom:calc(1px * var(--ui-scale-factor)) solid rgba(255,255,255,.08);background:rgba(0,0,0,.12);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
 .overview-canvas{position:absolute;left:0;right:0;top:calc(30px * var(--ui-scale-factor));bottom:0;overflow:hidden;}
 .overview-scene{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;}
 /* Les liaisons restent visibles dans la vue d'ensemble, derrière les listes. */
 .overview-connections{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible;}
 .overview-connection-path{fill:none;stroke:var(--connection-color,#ffffff);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;opacity:.72;vector-effect:non-scaling-stroke;}
 .overview-list{z-index:2;position:absolute;width:calc(204px * var(--ui-scale-factor));min-height:calc(67.5px * var(--ui-scale-factor));border-radius:calc(6px * var(--ui-scale-factor));background:rgba(33,39,52,.94);border:calc(1px * var(--ui-scale-factor)) solid rgba(255,255,255,.12);box-shadow:0 calc(3.75px * var(--ui-scale-factor)) calc(10.5px * var(--ui-scale-factor)) rgba(0,0,0,.18);user-select:none;touch-action:none;overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease;}
 .overview-list,.overview-list-title,.overview-list-strip,.overview-card{cursor:grab;}
 .overview-list:active,.overview-list-title:active,.overview-list-strip:active,.overview-card:active{cursor:grabbing;}
 .overview-list.group-selected{border-color:#fff;box-shadow:0 0 0 calc(1.5px * var(--ui-scale-factor)) #fff,0 calc(5.25px * var(--ui-scale-factor)) calc(13.5px * var(--ui-scale-factor)) rgba(0,0,0,.28);}
 .overview-list.link-source{outline:calc(1.5px * var(--ui-scale-factor)) solid var(--accent);outline-offset:calc(1.5px * var(--ui-scale-factor));}
 /* Pendant le glissement, le groupe (listes + liaisons) quitte visuellement le tableau de départ. */
 /* visibility peut être rétablie par les boutons des cartes : masquer aussi
 tous les descendants de la liste source pendant son transport. */
 .list.drag-source-hidden,.list.drag-source-hidden *,
 .overview-list.drag-source-hidden,.overview-list.drag-source-hidden *{
 visibility:hidden!important;pointer-events:none!important;
 }
 /* Suite : ces règles l’emportent sur des styles génériques de même spécificité (champs, pastilles, fenêtres) ; elles doivent rester après eux. */
 .list.two-col{width:calc(var(--list-width) * 2);}
 .overview-connection-path.drag-source-hidden{display:none;}
 .overview-list-strip{height:calc(5.25px * var(--ui-scale-factor));width:100%;}
 .overview-list-title{padding:calc(4.5px * var(--ui-scale-factor)) calc(5.25px * var(--ui-scale-factor)) calc(3.75px * var(--ui-scale-factor));font-size:calc(11px * var(--ui-scale-factor));font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
 .overview-cards{padding:0 calc(7.5px * var(--ui-scale-factor)) calc(7.5px * var(--ui-scale-factor));display:flex;flex-direction:column;gap:calc(4.5px * var(--ui-scale-factor));}
 .overview-list.two-col{width:calc(408px * var(--ui-scale-factor));}
 .overview-cards.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;}
 .overview-col{display:flex;flex-direction:column;gap:calc(4.5px * var(--ui-scale-factor));min-width:0;}
 .overview-card{height:calc(21px * var(--ui-scale-factor));border-radius:calc(4.5px * var(--ui-scale-factor));background:rgba(255,255,255,.08);border:calc(1px * var(--ui-scale-factor)) solid rgba(255,255,255,.08);font-size:calc(8px * var(--ui-scale-factor));line-height:calc(19.5px * var(--ui-scale-factor));padding:0 calc(5.25px * var(--ui-scale-factor));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab;touch-action:none;}
 .overview-card:active{cursor:grabbing;}
 .overview-board.zoom-source{z-index:5;will-change:transform,border-radius,box-shadow;}
 .overview-board.zoom-other{will-change:transform,opacity;}
 .overview-help{position:absolute;left:50%;bottom:calc(9px * var(--ui-scale-factor));transform:translateX(-50%);font-size:calc(9px * var(--ui-scale-factor));color:rgba(255,255,255,.62);background:rgba(0,0,0,.28);padding:calc(5.25px * var(--ui-scale-factor)) calc(9px * var(--ui-scale-factor));border-radius:calc(749.25px * var(--ui-scale-factor));white-space:nowrap;}
 .overview-drag-group-ghost{position:fixed;z-index:9000;pointer-events:none;transform:none;filter:drop-shadow(0 calc(10.5px * var(--ui-scale-factor)) calc(18px * var(--ui-scale-factor)) rgba(0,0,0,.34));}
 .overview-drag-connections{position:absolute;inset:0;z-index:0;overflow:visible;pointer-events:none;}
 .overview-drag-connection-path{fill:none;stroke:var(--connection-color,#ffffff);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;opacity:.82;vector-effect:non-scaling-stroke;}
 .overview-drag-group-ghost .overview-list{position:absolute!important;z-index:2;margin:0!important;opacity:1;box-shadow:0 calc(5.25px * var(--ui-scale-factor)) calc(13.5px * var(--ui-scale-factor)) rgba(0,0,0,.3);transform:scale(var(--drag-mini-scale,1))!important;transform-origin:top left!important;}
 .overview-drag-group-ghost .overview-list.group-selected{border-color:#fff!important;outline:calc(1.5px * var(--ui-scale-factor)) solid #fff;outline-offset:calc(1.5px * var(--ui-scale-factor));box-shadow:0 0 0 calc(1.5px * var(--ui-scale-factor)) #fff,0 calc(5.25px * var(--ui-scale-factor)) calc(13.5px * var(--ui-scale-factor)) rgba(0,0,0,.3)!important;}
 .overview-group-selection-box{z-index:10050;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.98);}
 body.overview-mode{overflow:hidden;}
 /* En vue éclatée, le sélecteur de tableau (1/2/3/4) n'a pas de sens : un seul plan large regroupe déjà tous les tableaux. */
 body.overview-mode #boardWorkspaces{display:none;}
 /* Rezoom : on ne touche plus au filter de #app. Le retirer puis le remettre à la
 dernière frame provoquait un très léger flash de contraste/luminosité.
 Une copie visuelle temporaire de la topbar passe au-dessus de l'overview. */
 .rezoom-topbar-clone{
 position:fixed!important;
 left:0!important;right:0!important;top:0!important;
 width:100%!important;
 z-index:8601!important;
 pointer-events:none!important;
 margin:0!important;
 box-sizing:border-box!important;
 }
 /* Le tableau sélectionné ne garde aucun contour pendant son agrandissement. */
 body.overview-closing .overview-board.zoom-source{
 border-color:transparent!important;
 box-shadow:none!important;
 outline:none!important;
 }
