/* R50 · DodoNode Builder asistido estable. Extensión visual sobre el patrón corporativo existente. */
.r50-builder-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line,#e2e8f0)}
.r50-builder-toolbar .spacer,.modal-foot .spacer{flex:1}
.r50-canvas .dodonode-node.editable{cursor:pointer;text-align:left}.r50-canvas .dodonode-node.editable:hover{border-color:rgba(254,76,2,.5);box-shadow:0 8px 22px rgba(0,29,92,.08);transform:translateY(-1px)}
.r50-empty{text-align:center;padding:32px 18px}.r50-empty b{display:block;font-size:17px;color:#001d5c}.r50-empty p{margin:6px 0 0;color:var(--muted)}
.r50-editor-intro,.r50-wizard-step{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fafbfe;margin-bottom:16px}.r50-wizard-step>span{display:grid;place-items:center;width:28px;height:28px;min-width:28px;border-radius:9px;background:var(--orange-soft,#fff0e9);color:#d84600;font-weight:900}.r50-editor-intro b,.r50-wizard-step h3{font-size:12px;margin:0}.r50-editor-intro p,.r50-wizard-step p{font-size:10px;color:var(--muted);margin:3px 0 0;line-height:1.45}
.r50-loading{padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:#fafbfe;font-size:10px}.hidden{display:none!important}
.r50-map-head,.r50-map-row{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr) 34px;gap:8px;align-items:center}.r50-map-head{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800;margin-bottom:7px}.r50-map-row{margin:8px 0}.r50-map-row select{width:100%;min-width:0}
.r50-step-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.r50-step-choices button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px;text-align:left;cursor:pointer;transition:.15s}.r50-step-choices button:hover{border-color:rgba(254,76,2,.5);background:#fffaf7;transform:translateY(-1px)}.r50-step-choices b{display:block;color:#001d5c;font-size:11px}.r50-step-choices small{display:block;color:var(--muted);font-size:9px;line-height:1.45;margin-top:4px}
.r50-field-map-list{display:grid;gap:7px;max-height:45vh;overflow:auto;padding-right:3px}.r50-field-map-choice{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.r50-field-map-choice label{font-size:10px;color:#001d5c;font-weight:700}.r50-field-map-choice select{width:100%}
.r50-error-card{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border:1px solid #fecaca;border-radius:14px;background:#fff7f7;margin-bottom:14px}.r50-error-card b{font-size:11px;color:#991b1b}.r50-error-card p{font-size:10px;color:#7f1d1d;margin-top:3px}.r50-error-card small{display:block;margin-top:5px;font-family:monospace;color:#991b1b}
.builder-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.builder-actions small{color:var(--muted)}
.dodonode-link.muted{opacity:.22}
@media(max-width:760px){.r50-step-choices{grid-template-columns:1fr}.r50-map-head,.r50-map-row{grid-template-columns:1fr 22px 1fr 30px}.r50-error-card,.builder-actions{align-items:stretch;flex-direction:column}.builder-actions .btn{width:100%}.r50-builder-toolbar .spacer{display:none;width:100%}}

/* R51 · preparación automática de sincronización */
.r51-automation .panel-body{display:grid;gap:14px}
.r51-prep{border:1px solid var(--border,#d9e1ef);border-radius:14px;background:#fff;padding:14px}
.r51-prep.hidden{display:none}
.r51-prep-list{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.r51-prep-step{min-width:0;border:1px solid #e6eaf1;border-radius:12px;padding:10px 8px;display:flex;gap:8px;align-items:flex-start;background:#fbfcfe;transition:.18s ease}
.r51-prep-step b{display:block;font-size:12px;line-height:1.2;color:#102a56}
.r51-prep-step small{display:block;margin-top:3px;font-size:10px;color:#6a7891;line-height:1.25}
.r51-prep-icon{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;background:#eef2f7;color:#68758d;font-weight:800}
.r51-prep-step.running{border-color:#b9c8df;background:#f7faff}.r51-prep-step.running .r51-prep-icon{background:#e7effa;color:#001d5c}
.r51-prep-step.ok{border-color:#b9dfc7;background:#f6fcf8}.r51-prep-step.ok .r51-prep-icon{background:#def4e5;color:#0c7a38}
.r51-prep-step.error{border-color:#f1c4c4;background:#fff8f8}.r51-prep-step.error .r51-prep-icon{background:#fde7e7;color:#a93232}
.r51-prep-note{margin-top:10px;border-top:1px solid #edf0f5;padding-top:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.r51-prep-note b{color:#001d5c}.r51-prep-note span{color:#5f6f88;font-size:12px}
.r51-prep-actions{align-items:center}.r51-prep-actions small{color:#6b7890}
@media(max-width:1100px){.r51-prep-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.r51-prep-list{grid-template-columns:1fr}}

/* R53 · plantillas de sincronización sobre el mismo lenguaje visual */
.r53-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.r53-template-grid button{appearance:none;border:1px solid var(--line,#dfe4ea);background:var(--card,#fff);border-radius:14px;padding:14px 15px;text-align:left;cursor:pointer;min-height:78px;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.r53-template-grid button:hover{border-color:#FE4C02;box-shadow:0 8px 24px rgba(0,29,92,.08);transform:translateY(-1px)}
.r53-template-grid button.selected{border-color:#FE4C02;box-shadow:0 0 0 2px rgba(254,76,2,.12)}
.r53-template-grid button b{display:block;font-size:14px;margin-bottom:4px;color:#001D5C}
.r53-template-grid button small{display:block;line-height:1.35;color:var(--muted,#64748b)}
.r53-policy-head{margin-bottom:14px}.r53-policy-head b{color:#001D5C}.r53-policy-head p{margin:4px 0 0;color:var(--muted,#64748b);font-size:13px;line-height:1.45}
.warning-soft{margin-top:12px;border:1px solid rgba(254,76,2,.26);background:rgba(254,76,2,.055);border-radius:12px;padding:11px 13px}.warning-soft b{color:#9a3412}.warning-soft p{margin:4px 0 0;font-size:12px;line-height:1.45;color:var(--muted,#64748b)}
@media (max-width:760px){.r53-template-grid{grid-template-columns:1fr}}

/* R54 · Event/CDC listener status */
.r54-event-state{margin-top:12px;padding:12px 14px;border:1px solid var(--line,#d9dde5);border-radius:12px;background:var(--panel-soft,#f7f9fc);display:grid;gap:8px}
.r54-event-state>div:first-child{display:flex;flex-direction:column;gap:3px}
.r54-event-state small{opacity:.72}
.r54-event-state.warning{border-color:#d8a93b;background:rgba(216,169,59,.08)}
.r54-event-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;opacity:.76}

/* R57: regression repair; visual contract unchanged from R56. */

/* R58 · universal workflow editor */
.r58-graph-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:start}
.r58-node-wrap{min-width:0;border:1px solid var(--border,rgba(15,23,42,.12));border-radius:18px;padding:10px;background:var(--surface,#fff)}
.r58-node-wrap .dodonode-node{width:100%;min-height:142px}
.r58-node-actions{display:flex;align-items:center;gap:9px;margin-top:8px}
.r58-node-actions small{opacity:.72}
.r58-add-after{width:32px;height:32px;border-radius:50%;border:1px solid rgba(254,76,2,.35);background:rgba(254,76,2,.08);font-weight:800;cursor:pointer}
.r58-outgoing{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.r58-edge-chip{border:0;border-radius:999px;padding:6px 9px;background:rgba(0,29,92,.07);font-size:11px;cursor:pointer;text-align:left}
.r58-edge-list{display:grid;gap:8px;margin-top:16px;max-height:340px;overflow:auto}
.r58-edge-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(15,23,42,.10);border-radius:12px;padding:10px 12px}
.r58-edge-list span{display:grid;gap:2px}.r58-edge-list small{opacity:.65}
.r58-action-box{border:1px solid rgba(0,29,92,.13);border-radius:14px;padding:14px;background:rgba(0,29,92,.025)}
.r58-action-box>p{margin:5px 0 12px}
@media(max-width:780px){.r58-graph-grid{grid-template-columns:1fr}}

/* R59 · selector de recursos con inventario completo y búsqueda server-side */
.r59-resource-picker{padding:12px;background:var(--card,#fff)}
.r59-resource-results{height:300px;display:block}
.r59-resource-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid #eef1f5;background:transparent;padding:10px 11px;text-align:left;cursor:pointer;border-radius:9px;color:inherit}
.r59-resource-option:hover{background:#fff}.r59-resource-option.selected{background:rgba(254,76,2,.07);box-shadow:inset 0 0 0 1px rgba(254,76,2,.22)}
.r59-resource-option span{display:grid;gap:2px;min-width:0}.r59-resource-option b{font-size:10px;color:var(--text,#102a56);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.r59-resource-option small{font-size:8px;color:var(--muted,#6b7890);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r59-resource-option em{font-style:normal;font-size:8px;font-weight:850;color:#001D5C;background:#eef3fa;border-radius:999px;padding:5px 7px;white-space:nowrap}
.r59-resource-more{display:block;width:calc(100% - 12px);margin:8px 6px 4px;border:1px dashed rgba(0,29,92,.22);background:#fff;border-radius:10px;padding:9px;font-size:9px;font-weight:800;color:#001D5C;cursor:pointer}.r59-resource-more:hover{border-color:#FE4C02;background:#fffaf7}
.r59-resource-placeholder{border:1px dashed var(--line,#dfe4ea);border-radius:12px;padding:13px;color:var(--muted,#64748b);background:#fafbfe;font-size:10px;margin-top:5px}
@media(max-width:760px){.r59-resource-results{height:255px}.r59-resource-option b{font-size:11px}.r59-resource-option small{font-size:9px}}
.r59-resource-meta-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.r59-resource-meta-right small{font-size:8px;color:var(--muted,#64748b)}
