body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}#root{height:100vh;width:100vw}.color-picker-overlay{align-items:center;background:#00000080;bottom:0;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.color-picker-modal{animation:modalSlideIn .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;max-width:400px;min-width:350px;padding:24px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.color-picker-modal h3{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 20px;text-align:center}.edit-section{margin-bottom:20px}.edit-section label{color:#374151;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.note-textarea{border:2px solid #d1d5db;border-radius:8px;font-family:Arial,sans-serif;font-size:14px;min-height:80px;padding:12px;resize:vertical;transition:border-color .2s ease;width:100%}.note-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.char-count{color:#6b7280;font-size:12px;margin-top:4px;text-align:right}.color-options{gap:12px}.color-options,.color-thumbnail{display:flex;justify-content:center}.color-thumbnail{align-items:center;border:3px solid #0000;border-radius:8px;box-shadow:0 2px 4px #0000001a;cursor:pointer;height:40px;transition:all .2s ease;width:40px}.color-thumbnail:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.color-thumbnail.selected{border-color:#1f2937;box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.checkmark{color:#1f2937;font-size:16px;font-weight:700;text-shadow:0 1px 2px #fffc}.button-group{display:flex;gap:8px;justify-content:center;margin-top:24px}.cancel-button,.delete-button,.save-button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 16px;transition:all .2s ease}.save-button{background:#3b82f6;color:#fff;min-width:100px}.save-button:hover{background:#2563eb;transform:translateY(-1px)}.cancel-button{border:1px solid #d1d5db}.cancel-button:hover{transform:translateY(-1px)}.delete-button{background:#ef4444;color:#fff}.delete-button:hover{background:#dc2626;transform:translateY(-1px)}.canvas-container{background-color:#f5f5f5;background-image:linear-gradient(#0000001a 1px,#0000 0),linear-gradient(90deg,#0000001a 1px,#0000 0);background-size:20px 20px;height:100vh;overflow:hidden;position:relative;width:100%}.canvas-container canvas{cursor:grab}.canvas-container canvas:active{cursor:grabbing}.toolbar{background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;left:20px;max-width:250px;min-width:200px;padding:16px;position:fixed;top:80px;transition:all .3s ease;z-index:1000}.toolbar.minimized{min-width:180px;padding:12px 16px}.toolbar.read-only{border-color:#d1d5db;opacity:.7}.toolbar.read-only .toolbar-button{cursor:not-allowed;opacity:.5;pointer-events:none}.toolbar.read-only .toolbar-button:hover{background:#fff;border-color:#d1d5db;transform:none}.toolbar-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:8px}.toolbar-header h3{color:#374151;font-size:14px;font-weight:600;margin:0}.minimize-button{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:12px;line-height:1;padding:4px;transition:all .2s ease}.minimize-button:hover{background:#f3f4f6;color:#374151}.toolbar-section{margin-bottom:20px}.toolbar-section:last-child{margin-bottom:0}.toolbar-section h3{border-bottom:1px solid #e5e7eb;color:#374151;font-size:14px;font-weight:600;margin:0 0 10px;padding-bottom:5px}.toolbar-button{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;display:block;font-size:13px;margin-bottom:6px;padding:8px 12px;text-align:left;transition:all .2s ease;width:100%}.toolbar-button:hover{background:#f9fafb;border-color:#9ca3af;transform:translateY(-1px)}.toolbar-button:active{transform:translateY(0)}.note-button:hover{background:#fef3c7;border-color:#f59e0b}.image-button:hover{background:#ecfdf5;border-color:#10b981}.doc-button:hover{background:#dbeafe;border-color:#3b82f6}.canvas-button:hover{background:#f3e8ff;border-color:#8b5cf6}.connection-button:hover{background:#fef2f2;border-color:#ef4444}.connection-button.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.connection-button.active:hover{background:#2563eb;border-color:#2563eb}.help-text{color:#6b7280;font-size:11px;line-height:1.4}.help-text p{margin:4px 0}.help-text strong{color:#374151}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 16px #0003;max-width:500px;padding:24px;width:90%}.modal-content h2{color:#1f2937;font-size:20px;margin:0 0 16px}.form-group{margin-bottom:16px}.form-group label{color:#374151;display:block;font-size:14px;font-weight:500;margin-bottom:4px}.form-group input{border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-family:inherit;font-size:14px;padding:8px 12px;width:100%}.form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.error-message{color:#ef4444;font-size:12px;margin-top:4px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px}.cancel-button,.confirm-button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.cancel-button{background:#f3f4f6;color:#374151}.cancel-button:hover{background:#e5e7eb}.confirm-button{background:#3b82f6;color:#fff}.confirm-button:hover{background:#2563eb}.image-modal{max-width:600px}.input-type-selector{display:flex;gap:10px;margin-bottom:20px}.type-button{background:#fff;border:2px solid #e0e0e0;border-radius:5px;cursor:pointer;flex:1 1;padding:10px;transition:all .2s}.type-button:hover{background:#f5f5f5}.type-button.active{background:#2196f3;border-color:#2196f3;color:#fff}.file-button{background:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-block;margin-top:10px;padding:8px 16px}.file-button:hover{background:#1976d2}.file-name{color:#666;font-size:14px;margin-top:10px}.image-preview{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin:20px 0;padding:10px;text-align:center}.image-preview img{border-radius:4px;max-height:300px;max-width:100%}input[type=file]{display:none}.sub-canvas-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.sub-canvas-modal{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;max-width:500px;min-width:400px;padding:24px}.sub-canvas-modal h3{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 20px}.sub-canvas-form{display:flex;flex-direction:column;gap:16px}.sub-canvas-form label{color:#374151;font-weight:500;margin-bottom:4px}.sub-canvas-form input{border:2px solid #d1d5db;border-radius:6px;font-size:14px;padding:12px;transition:border-color .2s}.sub-canvas-form input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.sub-canvas-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.sub-canvas-cancel{background:#fff;border:2px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.sub-canvas-cancel:hover{background:#f9fafb;border-color:#9ca3af}.sub-canvas-add{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:10px 20px;transition:background-color .2s}.sub-canvas-add:hover:not(:disabled){background:#2563eb}.sub-canvas-add:disabled{background:#9ca3af;cursor:not-allowed}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;max-width:400px;overflow:hidden;width:100%}.login-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;padding:32px 24px;text-align:center}.login-header h1{color:#1a202c;font-size:28px;font-weight:700;margin:0 0 8px}.login-header p{color:#6c757d;font-size:16px;margin:0}.login-content{padding:32px 24px}.google-signin-button{align-items:center;background:#fff;border:1px solid #dadce0;border-radius:8px;color:#3c4043;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:12px;justify-content:center;padding:12px 24px;transition:all .2s;width:100%}.google-signin-button:hover{background:#f8f9fa;box-shadow:0 2px 8px #0000001a}.google-signin-button:active{background:#e8eaed}.google-icon{height:20px;width:20px}.login-features{border-top:1px solid #e9ecef;margin-top:32px;padding-top:24px}.login-features h3{color:#6c757d;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 16px;text-transform:uppercase}.login-features ul{list-style:none;margin:0;padding:0}.login-features li{align-items:center;color:#495057;display:flex;font-size:14px;gap:8px;padding:8px 0}@media (max-width:480px){.login-card{border-radius:0;display:flex;flex-direction:column;height:100vh;margin:0;max-width:100%}.login-content{display:flex;flex:1 1;flex-direction:column;justify-content:center}}.app-header{background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a;height:60px;justify-content:space-between;left:0;padding:0 20px;position:fixed;right:0;top:0;z-index:1000}.app-header,.header-left{align-items:center;display:flex}.header-left{gap:16px}.header-left h1{color:#1f2937;font-size:20px;font-weight:600;margin:0}.breadcrumbs{align-items:center;display:flex;font-size:14px;gap:4px}.breadcrumb{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:14px;padding:4px 8px;transition:all .2s}.breadcrumb:not(.current):hover{background:#f3f4f6;color:#374151}.breadcrumb.current{color:#1f2937;cursor:default;font-weight:500}.breadcrumb:disabled{cursor:default}.breadcrumb-separator{color:#9ca3af;font-size:12px;margin:0 2px}.header-right{gap:16px}.header-right,.user-info{align-items:center;display:flex}.user-info{gap:8px}.user-avatar{border-radius:50%;height:32px;object-fit:cover;width:32px}.user-name{font-weight:500}.logout-button,.user-name{color:#374151;font-size:14px}.logout-button{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;padding:6px 12px;transition:all .2s}.logout-button:hover{background:#e5e7eb;border-color:#9ca3af}.app-content{height:calc(100vh - 60px);margin-top:60px}.App{height:100vh;overflow:hidden;position:relative;width:100%}.App.error,.App.loading{align-items:center;background:#f8fafc;display:flex;justify-content:center}.error-message,.loading-spinner{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;max-width:400px;padding:40px;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-left-color:#3b82f6;border-radius:50%;height:40px;margin:0 auto 20px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-spinner p{color:#6b7280;font-size:16px;margin:0}.error-message h2{color:#dc2626;font-size:20px;margin:0 0 16px}.error-message p{color:#6b7280;font-size:14px;margin:0 0 20px}.error-message button{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background .2s ease}.error-message button:hover{background:#2563eb}
/*# sourceMappingURL=main.1e73aa3d.css.map*/