:root{--entity-border:#64748b;--entity-bg:#f8fafc;--entity-bg-empty:#f1f5f9;--entity-border-empty:#cbd5e1;--entity-border-selected:#3b82f6;--entity-bg-selected:#eff6ff;--entity-border-filled:#475569;--entity-bg-filled:#fff;--entity-label-color:#0f172a;--entity-role-color:#64748b;--entity-text-color:#334155;--entity-prompt-color:#94a3b8;--arrow-color:#64748b;--arrowhead-fill:#64748b;--arrow-label-color:#94a3b8;--conflict-color:#dc2626;--conflict-label-color:#dc2626;--topbar-bg:#f8fafc;--topbar-border:#e2e8f0;--text-primary:#1e293b;--text-secondary:#64748b;--bg:#fff;--editor-bg:#f8fafc;--editor-border:#e2e8f0;--progress-color:#3b82f6;--badge-bg:#e2e8f0;--badge-text:#475569;--badge-attention-bg:#fbbf24;--badge-attention-text:#92400e;--badge-selected-border:#3b82f6;--arrow-selected-color:#3b82f6;--arrow-attention-color:#f59e0b;--assumption-border:#e2e8f0;--assumption-hover-bg:#f1f5f9;--delete-color:#dc2626;--valid-color:#16a34a;--valid-bg:#f0fdf4;--invalid-color:#d97706;--invalid-bg:#fffbeb;--injection-border:#d97706;--injection-bg:#fffbeb;--badge-complete-bg:#16a34a;--badge-complete-text:#fff;--badge-breakthrough-bg:#d97706;--badge-breakthrough-text:#fff;--badge-partial-bg:#93c5fd;--badge-partial-text:#1e3a5f}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;color:var(--text-primary);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-shell{flex-direction:column;height:100%;display:flex}.app-layout{flex-direction:column;flex:1;min-height:0;display:flex}.app-disclaimer{color:var(--text-secondary);text-align:center;border-top:1px solid var(--topbar-border);background:0 0;flex-shrink:0;padding:8px 16px;font-size:12px}.app-disclaimer a{color:inherit;text-decoration:underline}.topbar{background:var(--topbar-bg);border-bottom:1px solid var(--topbar-border);align-items:center;gap:16px;padding:12px 24px;display:flex}.topbar h1{white-space:nowrap;font-size:18px;font-weight:600}.cloud-title-input{border:1px solid var(--topbar-border);max-width:360px;color:var(--text-primary);background:var(--bg);border-radius:6px;outline:none;flex:1;padding:6px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.cloud-title-input:focus{border-color:var(--entity-border-selected)}.cloud-title-input::placeholder{color:var(--entity-prompt-color)}.progress-indicator{color:var(--text-secondary);white-space:nowrap;margin-left:auto;font-size:13px}.file-controls{align-items:center;gap:6px;display:flex}.file-btn{border:1px solid var(--topbar-border);color:var(--text-primary);background:var(--bg);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:500;transition:background .15s,border-color .15s}.file-btn:hover{background:var(--entity-bg);border-color:var(--entity-border)}.last-saved{color:var(--text-secondary);white-space:nowrap;margin-left:4px;font-size:11px}.main-content{flex:1;display:flex;overflow:hidden}.diagram-area{flex:1;justify-content:center;align-items:center;padding:24px;display:flex;overflow:hidden}.ec-diagram{width:100%;max-width:900px;height:auto}.ec-entity-box{fill:var(--entity-bg);stroke:var(--entity-border);stroke-width:1.5px;transition:fill .15s,stroke .15s}.ec-entity-empty{fill:var(--entity-bg-empty);stroke:var(--entity-border-empty);stroke-dasharray:4 3}.ec-entity-filled{fill:var(--entity-bg-filled);stroke:var(--entity-border-filled);stroke-width:2px}.ec-entity-selected{stroke:var(--entity-border-selected)!important;stroke-width:2.5px!important;stroke-dasharray:none!important;fill:var(--entity-bg-selected)!important}.ec-entity-label{fill:var(--entity-label-color);pointer-events:none;font-size:16px;font-weight:700}.ec-entity-role{fill:var(--entity-role-color);text-transform:uppercase;letter-spacing:.5px;pointer-events:none;font-size:12px;font-weight:500}.ec-entity-text{fill:var(--entity-text-color);pointer-events:none;font-size:11px}.ec-entity-prompt{fill:var(--entity-prompt-color);pointer-events:none;font-size:10px;font-style:italic}.ec-arrow{stroke:var(--arrow-color);stroke-width:2px;fill:none;transition:stroke .15s,stroke-width .15s}.ec-arrow.ec-arrow-selected{stroke:var(--arrow-selected-color);stroke-width:3px}.ec-arrow.ec-arrow-needs-attention{stroke:var(--arrow-attention-color);stroke-dasharray:6 3}.ec-arrowhead{fill:var(--arrowhead-fill)}.ec-arrow-label{fill:var(--arrow-label-color);pointer-events:none;font-size:8px}.ec-conflict-line{stroke:var(--conflict-color);stroke-width:2.5px;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:stroke-width .15s}.ec-conflict-line.ec-conflict-selected{stroke-width:3.5px}.ec-conflict-label{fill:var(--conflict-label-color);letter-spacing:1px;pointer-events:none;font-size:11px;font-weight:700}.ec-conflict-label.ec-conflict-selected{font-size:12px}.ec-conflict-role-label{fill:var(--conflict-label-color);letter-spacing:1px;pointer-events:none;font-size:9px;font-weight:700}.ec-conflict-text{fill:var(--text-primary);pointer-events:none;font-size:11px}.ec-conflict-line.ec-conflict-needs-attention{stroke-dasharray:6 3;opacity:.7}.ec-conflict-assumptions-label{fill:var(--arrow-label-color);pointer-events:none;font-size:9px}.ec-conflict-assumptions-label.ec-conflict-selected{fill:var(--arrow-selected-color)}.ec-badge{fill:var(--badge-bg);stroke:none}.ec-badge.ec-badge-attention{fill:var(--badge-attention-bg)}.ec-badge.ec-badge-selected{stroke:var(--badge-selected-border);stroke-width:2px}.ec-badge-text{fill:var(--badge-text);pointer-events:none;font-size:10px;font-weight:700}.ec-badge-attention-text{fill:var(--badge-attention-text);font-size:12px}.editor-panel{border-left:1px solid var(--editor-border);background:var(--editor-bg);width:320px;min-width:280px;padding:20px;overflow-y:auto}.entity-editor{flex-direction:column;gap:12px;display:flex}.entity-editor-header{align-items:center;gap:8px;display:flex}.entity-editor-label{color:var(--entity-label-color);font-size:20px;font-weight:700}.entity-editor-role{color:var(--entity-role-color);text-transform:uppercase;letter-spacing:.5px;font-size:13px}.entity-editor-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:4px 8px;font-size:16px;line-height:1}.entity-editor-close:hover{background:var(--topbar-border)}.entity-editor-prompt{color:var(--text-secondary);font-size:13px;font-style:italic;line-height:1.4}.entity-editor-textarea{border:1px solid var(--editor-border);width:100%;color:var(--text-primary);background:var(--bg);resize:vertical;border-radius:6px;outline:none;min-height:100px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .15s}.entity-editor-textarea:focus{border-color:var(--entity-border-selected)}.entity-editor-textarea::placeholder{color:var(--entity-prompt-color);font-style:italic}.arrow-detail{flex-direction:column;gap:12px;display:flex}.arrow-detail-header{align-items:center;gap:8px;display:flex}.arrow-detail-label{color:var(--entity-label-color);font-size:20px;font-weight:700}.arrow-detail-role{color:var(--entity-role-color);text-transform:uppercase;letter-spacing:.5px;font-size:13px}.arrow-detail-prompt{color:var(--text-secondary);font-size:13px;font-style:italic;line-height:1.4}.arrow-detail-add{flex-direction:column;gap:6px;display:flex}.arrow-detail-textarea{border:1px solid var(--editor-border);width:100%;color:var(--text-primary);background:var(--bg);resize:vertical;border-radius:6px;outline:none;min-height:52px;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.4;transition:border-color .15s}.arrow-detail-textarea:focus{border-color:var(--entity-border-selected)}.arrow-detail-textarea::placeholder{color:var(--entity-prompt-color);font-style:italic}.arrow-detail-add-btn{color:#fff;background:var(--entity-border-selected);cursor:pointer;border:none;border-radius:6px;align-self:flex-end;padding:6px 16px;font-size:13px;font-weight:600;transition:opacity .15s}.arrow-detail-add-btn:disabled{opacity:.4;cursor:default}.arrow-detail-add-btn:hover:not(:disabled){opacity:.85}.arrow-detail-empty{color:var(--entity-prompt-color);padding:8px 0;font-size:13px;font-style:italic}.assumption-list{flex-direction:column;gap:4px;list-style:none;display:flex}.assumption-item{border:1px solid var(--assumption-border);background:var(--bg);border-radius:6px;flex-direction:column;gap:4px;padding:8px 10px;transition:background .1s;display:flex}.assumption-item:hover{background:var(--assumption-hover-bg)}.assumption-text{color:var(--text-primary);font-size:13px;line-height:1.4}.assumption-actions{justify-content:flex-end;gap:8px;display:flex}.assumption-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:12px;font-weight:500}.assumption-edit-btn{color:var(--entity-border-selected)}.assumption-edit-btn:hover{background:var(--entity-bg-selected)}.assumption-delete-btn{color:var(--delete-color)}.assumption-delete-btn:hover{background:#fef2f2}.assumption-edit-textarea{border:1px solid var(--entity-border-selected);width:100%;color:var(--text-primary);background:var(--bg);resize:vertical;border-radius:4px;outline:none;min-height:40px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1.4}.assumption-header{flex-direction:column;gap:4px;display:flex}.assumption-status-btn{border:1px solid var(--assumption-border);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.assumption-status-btn-unchallenged{color:var(--text-secondary);background:var(--entity-bg)}.assumption-status-btn-valid{color:var(--valid-color);background:var(--valid-bg);border-color:var(--valid-color)}.assumption-status-btn-invalid{color:var(--invalid-color);background:var(--invalid-bg);border-color:var(--invalid-color)}.assumption-status-valid{border-color:var(--valid-color);border-left:3px solid var(--valid-color)}.assumption-status-invalid{border-color:var(--invalid-color);border-left:3px solid var(--invalid-color);background:var(--invalid-bg)}.challenge-notes-textarea{border:1px solid var(--assumption-border);width:100%;color:var(--text-primary);background:var(--bg);resize:vertical;border-radius:4px;outline:none;min-height:36px;margin-top:4px;padding:6px 8px;font-family:inherit;font-size:12px;line-height:1.4}.challenge-notes-textarea:focus{border-color:var(--entity-border-selected)}.challenge-notes-textarea::placeholder{color:var(--entity-prompt-color);font-style:italic}.injection-section{border-left:2px solid var(--injection-border);flex-direction:column;gap:6px;margin-top:6px;padding-left:8px;display:flex}.injection-card{border:1px solid var(--injection-border);background:var(--injection-bg);border-radius:6px;flex-direction:column;gap:4px;padding:8px;display:flex}.injection-card-header{justify-content:space-between;align-items:center;display:flex}.injection-card-label{text-transform:uppercase;letter-spacing:.5px;color:var(--invalid-color);font-size:10px;font-weight:700}.injection-card-actions{gap:6px;display:flex}.injection-card-text{color:var(--text-primary);font-size:13px;line-height:1.4}.injection-notes-textarea{border:1px solid var(--assumption-border);width:100%;color:var(--text-secondary);background:var(--bg);resize:vertical;border-radius:4px;outline:none;min-height:28px;padding:4px 6px;font-family:inherit;font-size:11px;line-height:1.3}.injection-notes-textarea:focus{border-color:var(--entity-border-selected)}.injection-notes-textarea::placeholder{color:var(--entity-prompt-color);font-size:11px;font-style:italic}.injection-add{align-items:center;gap:6px;margin-top:4px;display:flex}.injection-add-input{border:1px solid var(--assumption-border);color:var(--text-primary);background:var(--bg);border-radius:4px;outline:none;flex:1;padding:6px 8px;font-family:inherit;font-size:12px}.injection-add-input:focus{border-color:var(--entity-border-selected)}.injection-add-input::placeholder{color:var(--entity-prompt-color);font-style:italic}.injection-add-btn{color:#fff;background:var(--invalid-color);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:600;transition:opacity .15s}.injection-add-btn:disabled{opacity:.4;cursor:default}.injection-add-btn:hover:not(:disabled){opacity:.85}.arrow-detail-summary{border-top:1px solid var(--assumption-border);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;padding:8px 0;font-size:12px;display:flex}.summary-sep{color:var(--entity-prompt-color)}.summary-valid{color:var(--valid-color)}.summary-invalid{color:var(--invalid-color)}.summary-injections{color:var(--invalid-color);font-weight:600}.ec-badge.ec-badge-complete{fill:var(--badge-complete-bg)}.ec-badge-text.ec-badge-complete-text{fill:var(--badge-complete-text);font-size:11px}.ec-badge.ec-badge-breakthrough{fill:var(--badge-breakthrough-bg)}.ec-badge-text.ec-badge-breakthrough-text{fill:var(--badge-breakthrough-text)}.ec-badge.ec-badge-partial{fill:var(--badge-partial-bg)}.ec-badge-text.ec-badge-partial-text{fill:var(--badge-partial-text)}.review-overlay{z-index:100;background:#0f172a66;justify-content:center;align-items:flex-start;padding:32px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.review-panel{background:var(--bg);border-radius:12px;flex-direction:column;width:100%;max-width:720px;max-height:calc(100vh - 64px);display:flex;box-shadow:0 8px 32px #0000002e}.review-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.review-header h2{color:var(--text-primary);font-size:20px;font-weight:700}.review-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:22px;line-height:1}.review-close:hover{background:var(--topbar-border)}.review-summary{border-bottom:1px solid var(--editor-border);align-items:center;gap:16px;padding:16px 24px;display:flex}.review-completeness{align-items:baseline;gap:6px;display:flex}.review-completeness-value{color:var(--progress-color);font-size:28px;font-weight:700}.review-completeness-label{color:var(--text-secondary);font-size:13px}.review-flag-counts{gap:10px;margin-left:auto;display:flex}.review-flag-count{border-radius:10px;padding:3px 10px;font-size:12px;font-weight:600}.review-flag-count.review-flag-warning{color:#92400e;background:#fef3c7}.review-flag-count.review-flag-info{color:#1e40af;background:#dbeafe}.review-all-clear{color:var(--valid-color);margin-left:auto;font-size:13px;font-weight:600}.review-body{flex:1;padding:20px 24px 24px;overflow-y:auto}.review-title{color:var(--text-primary);margin-bottom:16px;font-size:18px;font-weight:700}.review-section{margin-bottom:20px}.review-section h4{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:600;line-height:1.5}.review-arrow-label{color:var(--progress-color);font-weight:700}.review-conflict{color:var(--text-primary);border-left:3px solid var(--conflict-color);background:#fef2f2;border-radius:4px;padding:8px 12px;font-size:14px;line-height:1.5}.review-empty{color:var(--entity-prompt-color);font-size:13px;font-style:italic}.review-assumptions{flex-direction:column;gap:8px;padding-left:20px;display:flex}.review-assumption{color:var(--text-primary);font-size:13px;line-height:1.5}.review-assumption-row{align-items:baseline;gap:8px;display:flex}.review-assumption-text{flex:1}.review-status{white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600}.review-status-unchallenged{color:var(--text-secondary);background:var(--entity-bg)}.review-status-valid{color:var(--valid-color);background:var(--valid-bg)}.review-status-invalid{color:var(--invalid-color);background:var(--invalid-bg)}.review-notes{color:var(--text-secondary);margin-top:2px;padding-left:4px;font-size:12px}.review-injection{color:var(--text-primary);background:var(--injection-bg);border-left:2px solid var(--injection-border);border-radius:4px;margin-top:4px;padding:6px 10px;font-size:12px;line-height:1.5}.review-injection-marker{color:var(--invalid-color);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:700}.review-injections-summary{color:var(--text-primary);padding-left:20px;font-size:13px;line-height:1.6}.review-injections-summary li{margin-bottom:4px}.review-flags-section{border-top:1px solid var(--editor-border);padding-top:16px}.review-flag-group{margin-bottom:12px}.review-flag-category{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:12px;font-weight:700}.review-flag-list{flex-direction:column;gap:3px;list-style:none;display:flex}.review-flag{color:var(--text-primary);border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;transition:background .1s;display:flex}.review-flag:hover{background:var(--assumption-hover-bg)}.review-flag-icon{flex-shrink:0;font-size:14px}.review-flag-icon-warning{color:#d97706}.review-flag-icon-info{color:#3b82f6}.review-btn{border:1px solid var(--progress-color);color:var(--progress-color);background:var(--bg);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background .15s,color .15s}.review-btn:hover{background:var(--progress-color);color:#fff}.completeness-indicator{color:var(--text-secondary);text-align:center;padding:4px 0;font-size:12px}@media (width<=1400px){.topbar{flex-wrap:wrap;gap:10px;padding:10px 16px}.topbar h1{font-size:16px}.cloud-title-input{max-width:240px}.editor-panel{width:280px;min-width:240px;padding:16px}}@media (width<=900px){.topbar h1{font-size:14px}.cloud-title-input{max-width:180px;font-size:13px}.diagram-area{padding:12px}.editor-panel{width:260px;min-width:220px;padding:12px}}
