html { box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; } body { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; background: #f5f7fa; color: #222; min-height: 100vh; min-width: 100vw; overflow-x: hidden; } #root { width: 100vw; height: 100vh; overflow: hidden; display: flex; flex-direction: column; } /* ReactFlow customizations */ .react-flow__node { padding: 10px; border-radius: 5px; width: 150px; font-size: 12px; color: #222; text-align: center; border-width: 1px; border-style: solid; background: white; border-color: #1a192b; } .react-flow__node-input { background: #f6f6f6; border-color: #0041d0; } .react-flow__node-default { background: #f6f6f6; border-color: #1a192b; } .react-flow__node-output { background: #f6f6f6; border-color: #ff0072; } .react-flow__handle { width: 8px; height: 8px; background: #1a192b; border: 1px solid white; } .react-flow__handle-top { top: -4px; } .react-flow__handle-bottom { bottom: -4px; } .react-flow__handle-left { left: -4px; } .react-flow__handle-right { right: -4px; } .react-flow__edge-path { stroke: #b1b1b7; stroke-width: 2; } .react-flow__edge.selected .react-flow__edge-path { stroke: #0041d0; } .react-flow__controls { box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.08); } .react-flow__controls-button { border: none; background: #f8f8f8; border-bottom: 1px solid #eee; box-sizing: content-box; display: flex; justify-content: center; align-items: center; width: 16px; height: 16px; cursor: pointer; user-select: none; padding: 5px; } .react-flow__controls-button:hover { background: #f1f1f1; } .mindmap-editor-container { width: 100vw; height: 100vh; display: flex; flex-direction: row; } @media (max-width: 700px) { .mindmap-editor-container { flex-direction: column; height: 100dvh; } } .toolbar { display: flex; gap: 8px; padding: 8px; background: #f5faff; border-bottom: 1px solid #eaf4ff; z-index: 10; } .toolbar button { background: #fff; border: 1px solid #cce3ff; border-radius: 4px; padding: 6px 12px; font-size: 1rem; cursor: pointer; transition: background 0.2s; } .toolbar button:focus { outline: 2px solid #007bff; } .toolbar button:hover { background: #eaf4ff; } .error-toast { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); background: #dc3545; color: white; padding: 10px 20px; border-radius: 4px; z-index: 1000; display: flex; align-items: center; gap: 8px; min-width: 200px; } .error-toast button { background: none; border: none; color: white; font-size: 1.2rem; cursor: pointer; margin-left: 8px; } .touch-friendly .toolbar button { min-width: 44px; min-height: 44px; font-size: 1.1rem; } @media (max-width: 700px) { .toolbar { flex-wrap: wrap; gap: 4px; padding: 4px; } .error-toast { top: 60px; min-width: 120px; font-size: 0.95rem; padding: 8px 10px; } }