/* MODULO Studio — PEREL visual conventions */
.modulo-intro{padding:16px;background:#f2f8fc;border-left:4px solid #1888ee;border-radius:5px;margin:12px 0 22px}
#modulo-studio{font-family:inherit;margin:8px 0 20px} .modulo-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px;background:#f3f8fd;border:1px solid #d8e6f3;border-radius:10px 10px 0 0}.modulo-toolbar input{flex:1;min-width:180px;font-size:16px;font-weight:600;border:1px solid #cddae6;border-radius:6px;padding:10px}.modulo-toolbar button{border:0;border-radius:7px;padding:10px 15px;cursor:pointer;background:#087adc;color:white;font-weight:600}.modulo-toolbar button:last-child{background:#ed791c}.modulo-toolbar button:disabled{opacity:.45;cursor:default}.modulo-back{color:#137ac6}.modulo-pill{padding:6px 10px;background:#e1ebf4;color:#2b506f;border-radius:99px}.modulo-workspace{display:grid;grid-template-columns:185px minmax(300px,1fr) 245px;min-height:570px;border:1px solid #d8e6f3;border-top:0;background:#fff}.modulo-palette,.modulo-props{background:#f7fafe;padding:14px;overflow:auto}.modulo-palette{border-right:1px solid #d8e6f3}.modulo-props{border-left:1px solid #d8e6f3}.modulo-palette h3,.modulo-props h3{margin:0 0 15px;font-size:14px;color:#244666}.modulo-palette-button{width:100%;display:block;text-align:left;padding:10px 8px;border:1px solid #dce6ef;border-radius:7px;background:#fff;margin:0 0 7px;cursor:pointer;font-size:13px}.modulo-palette-button i{display:inline-block;width:21px}.modulo-palette-button:hover{border-color:#087adc;background:#f1f8ff}.modulo-area{min-width:0;position:relative;background:white}.modulo-canvas-head{display:flex;justify-content:space-between;padding:9px 13px;font-size:12px;color:#60788a;border-bottom:1px solid #e3ecf3}.modulo-area #modulo-canvas{position:relative;height:540px;overflow:auto;background-color:#fafdff;background-image:radial-gradient(#d8e6f1 1px,transparent 1px);background-size:20px 20px}.modulo-area #modulo-lines,.modulo-area #modulo-nodes{position:absolute;left:0;top:0;width:1600px;height:1000px}.modulo-area #modulo-lines{pointer-events:none;overflow:visible}.modulo-edge{stroke:#5a8eb9;stroke-width:2;fill:none;pointer-events:none}.modulo-edge-hit{stroke:transparent;stroke-width:17;fill:none;cursor:pointer;pointer-events:stroke}.modulo-edge-label{fill:#315c81;font-size:11px}.modulo-node{position:absolute;width:172px;box-sizing:border-box;height:64px;display:flex;align-items:center;gap:10px;padding:12px 15px;background:linear-gradient(145deg,#fff,#f4f9fd);border:1px solid #bed6e9;border-left:5px solid #1581e6;border-radius:10px;box-shadow:0 3px 12px #17436a1c;cursor:grab;user-select:none;touch-action:none}.modulo-node:active{cursor:grabbing}.modulo-node.selected{outline:2px solid #f18c28;outline-offset:2px}.modulo-node.link-source{box-shadow:0 0 0 3px #57b6ff}.modulo-node-text{font-size:12px;font-weight:600;color:#254761;overflow-wrap:anywhere;max-height:52px;overflow:hidden}.modulo-port{position:absolute;top:24px;width:16px;height:16px;border-radius:50%;border:2px solid white;background:#168dec;box-shadow:0 0 0 1px #438abc;cursor:crosshair;padding:0}.modulo-port-in{left:-10px}.modulo-port-out{right:-10px;background:#f18b29}.modulo-port:disabled{opacity:.4}.modulo-field{display:flex;flex-direction:column;gap:6px;color:#4c667a;font-weight:600;font-size:12px;margin-bottom:14px}.modulo-field input,.modulo-field textarea{box-sizing:border-box;width:100%;border:1px solid #c5d9e9;padding:9px;border-radius:6px;font-weight:400;font-size:13px;min-height:38px}.modulo-field textarea{min-height:65px}.modulo-remove{margin-top:8px;border:1px solid #efab9b;color:#b53c28;border-radius:6px;background:#fff;padding:9px;cursor:pointer}#modulo-banner:empty{display:none}#modulo-banner{padding:10px 15px}.modulo-error{background:#fff0ed;color:#a63122}.modulo-success{background:#ecf8ef;color:#247440}@media(max-width:1100px){.modulo-workspace{grid-template-columns:145px minmax(260px,1fr) 190px}}@media(max-width:750px){.modulo-workspace{grid-template-columns:1fr}.modulo-palette,.modulo-props{border:0;border-bottom:1px solid #d8e6f3}.modulo-palette-items{display:flex}.modulo-area #modulo-canvas{height:460px}.modulo-toolbar{gap:7px}}

/* MODULO 0.1.2 — reprise fidèle de la charte PEREL SEZAME */
.modulo-modern-wrap{max-width:1450px;margin:0 auto;box-sizing:border-box;background:linear-gradient(180deg,#fbfbff,#f7f8ff);padding:6px 6px 28px;border-radius:24px;color:#1f2a3d}
.modulo-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:6px 0 20px;padding:18px 22px;border-radius:26px;background:linear-gradient(135deg,#fff,#f3f8fc);box-shadow:0 8px 24px rgba(28,36,70,.06);border:1px solid #edf0f8}
.modulo-hero-left{display:flex;align-items:center;gap:16px}.modulo-hero-logo{width:58px;height:58px;border-radius:20px;background:#fff;box-shadow:0 12px 28px rgba(34,48,92,.10);display:flex;align-items:center;justify-content:center;flex:none}.modulo-hero-logo img{width:46px;height:46px;object-fit:contain}.modulo-hero h1{font-size:24px!important;line-height:1.15;margin:0!important;color:#1f2a3d;font-weight:850}.modulo-hero p{font-size:14px;color:#6c7488;margin:5px 0 0!important}
.modulo-primary{display:inline-flex;padding:11px 18px;background:linear-gradient(135deg,#2874ad,#205f91);color:white!important;border-radius:14px;text-decoration:none!important;font-weight:800;box-shadow:0 12px 26px rgba(40,116,173,.22)}
.modulo-intro{padding:18px 20px;background:#fff;border:1px solid #e7ebf5;border-left:4px solid #2874ad;border-radius:20px;margin:12px 0 22px;box-shadow:0 8px 24px rgba(28,36,70,.06)}
.modulo-table-wrap{overflow-x:auto;border:1px solid #e7ebf5;border-radius:22px;background:#fff;box-shadow:0 8px 24px rgba(28,36,70,.06)}
.modulo-table{border-collapse:separate!important;border-spacing:0!important;background:#fff!important}.modulo-table th{padding:15px 14px!important;background:#f8f9fd!important;color:#31364a!important;text-transform:uppercase;font-size:12px;font-weight:850;letter-spacing:.035em}.modulo-table td{padding:15px 14px!important;border-bottom:1px solid #f1f3f8;color:#1f2a3d}.modulo-table a{font-weight:800;color:#2874ad;text-decoration:none}
#modulo-studio{border:1px solid #e7ebf5;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 8px 24px rgba(28,36,70,.06)}
.modulo-toolbar{background:#fff;border:none;border-radius:0;padding:18px 20px}.modulo-toolbar button{border-radius:14px;background:#2874ad}.modulo-toolbar button:last-child{background:#e4883c}.modulo-toolbar input{border-radius:12px}.modulo-workspace{border:0;border-top:1px solid #e7ebf5}.modulo-palette,.modulo-props{background:#f8f9fd}.modulo-node{border-radius:14px;box-shadow:0 8px 24px rgba(28,36,70,.08)}
.modulo-link-help{margin:0;padding:12px 20px;font-size:13px;color:#576b80;background:#eef6ff;border-top:1px solid #e7ebf5}.modulo-link-help.active{background:#fff3e6;color:#9e5114;font-weight:800}


/* MODULO 0.1.3 refinements */
.modulo-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 18px}
.modulo-stat-card{background:#fff;border:1px solid #e7ebf5;border-radius:20px;padding:16px 18px;box-shadow:0 8px 24px rgba(28,36,70,.06)}
.modulo-stat-card strong{display:block;font-size:28px;line-height:1.1;color:#1f2a3d;margin-top:6px}
.modulo-stat-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#7c8398;font-weight:800}
.modulo-row:hover td{background:#fbfcff}
.modulo-ref-pill,.modulo-version-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#f4f7fb;color:#455066;font-weight:700}
.modulo-status-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-weight:800;font-size:12px}
.modulo-status-badge.draft{background:#fff3e6;color:#9e5114}
.modulo-status-badge.published{background:#ecf8ef;color:#247440}
.modulo-workflow-link{font-size:15px}
.modulo-edge.selected{stroke:#f08c2d;stroke-width:3}
.modulo-edge-delete{cursor:pointer;pointer-events:all}
.modulo-edge-delete circle{fill:#fff;stroke:#f08c2d;stroke-width:1.5}
.modulo-edge-delete text{fill:#d46411;font-size:16px;font-weight:700}
.modulo-edge-panel{display:grid;gap:10px;margin-top:6px}
.modulo-edge-panel div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #e5ebf3;border-radius:10px;background:#fff}
.modulo-edge-panel strong{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#7a8797}
.modulo-edge-panel span{font-weight:700;color:#1f2a3d}
#modulo-banner{min-height:0}
#modulo-banner:empty{display:none}
.modulo-link-help{margin:0;padding:12px 20px;font-size:13px;color:#576b80;background:#eef6ff;border-top:1px solid #e7ebf5}
.modulo-link-help.active{background:#fff3e6;color:#9e5114;font-weight:800}
@media(max-width:900px){.modulo-stats{grid-template-columns:1fr}}

/* MODULO 0.1.4: SVG links must remain clickable below the node overlay. */
#modulo-studio #modulo-nodes{pointer-events:none!important;}
#modulo-studio .modulo-node{pointer-events:auto!important;}
#modulo-studio #modulo-lines{pointer-events:none;}
#modulo-studio .modulo-edge-hit{pointer-events:stroke!important;}
#modulo-studio .modulo-edge-delete{pointer-events:all!important;}
#modulo-studio .modulo-edge-delete>*{pointer-events:all;}
.modulo-edge-list{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.modulo-edge-list-item{background:#fff;border:1px solid #e5ebf3;border-radius:10px;padding:9px;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;color:#28435e;}
.modulo-edge-list-item button{background:#fff2ee;border:1px solid #edb5a7;color:#a43b2f;border-radius:7px;padding:6px 9px;cursor:pointer;font-weight:bold;}
