@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap);.login-root{align-items:center;background:#f3f4f6;display:flex;justify-content:center;min-height:100vh;padding:24px 16px}.login-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.08);max-width:400px;padding:32px 32px 24px;width:100%}.login-header{margin-bottom:24px;text-align:center}.login-title{color:#111827!important;font-size:1.375rem!important;font-weight:700!important;line-height:1.25!important}.login-subtitle{color:#6b7280!important;margin-top:4px!important}.login-oauth-btn{background-color:#fff!important;border-color:#d1d5db!important;border-radius:8px!important;color:#374151!important;font-size:.875rem!important;font-weight:500!important;justify-content:flex-start!important;padding:8px 16px!important;text-transform:none!important;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease!important}.login-oauth-btn:hover:not(:disabled){background-color:#f9fafb!important;border-color:#9ca3af!important;box-shadow:0 1px 4px rgba(0,0,0,.08)!important}.login-oauth-btn:disabled{cursor:not-allowed!important;opacity:.45!important}.login-oauth-btn .MuiButton-startIcon svg[data-testid=GitHubIcon]{color:#24292f}.login-oauth-btn--google .MuiButton-startIcon svg{color:#ea4335}.login-oauth-btn--sso .MuiButton-startIcon svg{color:#2563eb}.login-divider{border-color:#e5e7eb!important;margin:16px 0!important}.login-divider-text{color:#9ca3af!important;font-size:.75rem!important;padding:0 8px}.login-input .MuiOutlinedInput-root{background-color:#fff;border-radius:8px;color:#111827}.login-input .MuiOutlinedInput-notchedOutline{border-color:#d1d5db!important}.login-input .MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline{border-color:#9ca3af!important}.login-input .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#2563eb!important;border-width:2px!important}.login-input .MuiInputLabel-root{color:#6b7280!important}.login-input .MuiInputLabel-root.Mui-focused{color:#2563eb!important}.login-input input{color:#111827}.login-input input:-webkit-autofill,.login-input input:-webkit-autofill:focus,.login-input input:-webkit-autofill:hover{-webkit-text-fill-color:#111827;-webkit-box-shadow:inset 0 0 0 1000px #fff}.login-submit-btn{background-color:#2563eb!important;border-radius:8px!important;color:#fff!important;font-size:.875rem!important;font-weight:600!important;padding:9px 16px!important;text-transform:none!important;transition:background-color .15s ease,box-shadow .15s ease!important}.login-submit-btn:hover:not(:disabled){background-color:#1d4ed8!important;box-shadow:0 2px 8px rgba(37,99,235,.35)!important}.login-submit-btn:disabled{background-color:#2563eb!important;opacity:.6!important}.login-sso-view{display:flex;flex-direction:column;gap:0}.login-sso-continue-btn{background-color:#2563eb!important;border-radius:8px!important;color:#fff!important;font-size:.9375rem!important;font-weight:600!important;padding:10px 16px!important;text-transform:none!important;transition:background-color .15s ease,box-shadow .15s ease!important}.login-sso-continue-btn:hover:not(:disabled){background-color:#1d4ed8!important;box-shadow:0 2px 8px rgba(37,99,235,.35)!important}.login-sso-continue-btn:disabled{background-color:#2563eb!important;opacity:.6!important}.login-sso-back-link{color:#2563eb!important;cursor:pointer;display:block;font-size:.875rem!important;font-weight:500!important;margin-top:16px!important;text-align:center;text-decoration:none!important}.login-sso-back-link:hover{text-decoration:underline!important}.login-sso-action-btn{border-radius:8px!important;font-size:.8125rem!important;text-transform:none!important}.login-signup-text{color:#6b7280!important}.login-signup-link{color:#2563eb!important;text-decoration:none!important}.login-signup-link:hover{text-decoration:underline!important}.login-footer-text{color:#9ca3af!important;cursor:pointer}.login-footer-text:hover{color:#6b7280!important;text-decoration:underline}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;will-change:width,height;z-index:1}.react-grid-item.react-draggable-dragging{transition:none;will-change:transform;z-index:3}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;-webkit-user-select:none;-o-user-select:none;user-select:none;z-index:2}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{height:20px;position:absolute;width:20px}.react-grid-item>.react-resizable-handle:after{border-bottom:2px solid rgba(0,0,0,.4);border-right:2px solid rgba(0,0,0,.4);bottom:3px;content:"";height:5px;position:absolute;right:3px;width:5px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e,.react-grid-item>.react-resizable-handle.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZaIiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+);background-origin:content-box;background-position:100% 100%;background-repeat:no-repeat;box-sizing:border-box;height:20px;padding:0 3px 3px 0;position:absolute;width:20px}.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.home-dashboard .react-grid-item.react-grid-placeholder{background:#1976d2;border-radius:8px;opacity:.12}.home-dashboard .react-resizable-handle{z-index:3}.menu-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.1);padding:20px;transition:transform .2s,box-shadow .2s;width:200px}.menu-card:hover{box-shadow:0 5px 15px rgba(0,0,0,.1);transform:translateY(-5px)}.menu-card h3{color:#1976d2;margin-top:0}.header{background-color:#282c34;padding:20px;text-align:center}.health-status{font-weight:700;margin:20px 0}.App{display:flex;flex-direction:column;min-height:100vh;text-align:center;width:100%}.content-container{flex:1 1;margin-top:64px;overflow:hidden;position:relative}.route-content{pointer-events:auto;position:relative;z-index:1}.konva-container{height:100%;left:0;position:absolute;top:0;width:100%}.konva-canvas-container{background-color:#f0f2f5;background-image:radial-gradient(circle,#c8cdd6 1px,transparent 0);background-size:24px 24px;height:100%;overflow:hidden;position:relative;width:100%}.konva-canvas-container canvas{display:block}.zoom-panel{box-shadow:0 2px 10px rgba(0,0,0,.2);flex-direction:column;gap:8px;padding:10px;z-index:9999!important}.zoom-control{background:#fff;height:36px;transition:background .2s;width:36px}.zoom-control:hover{background:#f5f5f5}.zoom-text{color:#333;font-weight:700;margin:0 8px;min-width:40px}.zoom-control{align-items:center;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;transition:background-color .2s,opacity .2s,color .2s;width:32px}.zoom-control:hover{background-color:rgba(0,0,0,.1)}.zoom-control.search{color:#505050;cursor:default}.zoom-control.search:hover{background-color:transparent}.zoom-control.zoom-in,.zoom-control.zoom-out{border:1px solid #ddd}.zoom-control.home svg{color:#1976d2}.zoom-control.hand.active{background-color:#1976d2;color:#fff}.zoom-control svg{height:20px;width:20px}.hand.inactive{color:#ccc;opacity:.6}.hand.active{color:#333;opacity:1}#root,body,html{height:100%;margin:0;padding:0}body{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-x:hidden}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f2f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100%;margin:0;overflow:visible;padding:0}*{box-sizing:border-box}.header{background-color:#007bff;padding:10px 20px}.footer{background-color:#f1f1f1;bottom:0;padding:20px;position:relative;width:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{height:100%}:root{--zoom-factor:1}.content-container{transform:scale(1);transform:scale(var(--zoom-factor));transform-origin:top left;transition:transform .2s ease-out;transition:transform .2s ease}.App{overflow:auto}.content-container{-webkit-user-select:none;user-select:none}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}body,h1,h2,h3,h4,h5,h6{margin:0}a{color:inherit;text-decoration:none}.container{margin:0 auto;max-width:1200px;padding:20px}.header{background-color:#1976d2;box-shadow:0 2px 4px rgba(0,0,0,.1);color:#fff;height:60px;justify-content:space-between;padding:0 20px}.header,.header-left{align-items:center;display:flex}.header-center{flex:1 1;font-size:1.5rem;font-weight:500;text-align:center}.header-right{align-items:center;display:flex;gap:15px}.header-button{background-color:transparent;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 15px;transition:background-color .3s}.header-button:hover{background-color:hsla(0,0%,100%,.1)}.user-info{align-items:center;display:flex;font-size:.9rem}.user-role{color:gold;margin-left:5px}.footer{background-color:#282c34;color:#fff;padding:10px;text-align:center}.loading{align-items:center;display:flex;height:100vh;justify-content:center}.error{color:red;text-align:center}.health-status{background-color:#f5f5f5;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);margin:20px;padding:15px}.health-status .status{font-weight:500}.health-status .status.healthy{color:#4caf50}.health-status .status.unhealthy{color:#f44336}.auth-container{align-items:center;background-color:#fff;border-radius:8px;box-shadow:0 0 10px rgba(0,0,0,.1);display:flex;flex-direction:column;justify-content:center;margin:50px auto;max-width:500px;padding:2rem}.auth-title{color:#333;font-size:2rem;margin-bottom:2rem}.auth-form{width:100%}.form-group{margin-bottom:1.5rem;width:100%}.form-group label{display:block;font-weight:500;margin-bottom:.5rem}.form-control{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:1rem;padding:10px;width:100%}.auth-button{background-color:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px;transition:background-color .3s;width:100%}.auth-button:hover{background-color:#1565c0}.auth-link{margin-top:1rem;text-align:center}.auth-link a{color:#1976d2;text-decoration:none}.auth-link a:hover{text-decoration:underline}.error-message{background-color:#ffebee;border-radius:4px;color:#d32f2f;margin:1rem 0;padding:.5rem;text-align:center}.loading-screen{align-items:center;background-color:hsla(0,0%,100%,.7);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.loading-spinner{animation:spin 1s linear infinite;border:4px solid rgba(0,0,0,.1);border-left-color:#1976d2;border-radius:50%;height:36px;width:36px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.zoom-panel{background:#fff;border-radius:4px;bottom:20px;box-shadow:0 2px 5px rgba(0,0,0,.2);display:flex;padding:5px;position:fixed;right:20px;z-index:1000}.zoom-button{align-items:center;background:none;border:none;color:#555;cursor:pointer;display:flex;justify-content:center;padding:8px}.zoom-button:hover{background-color:#f0f0f0;border-radius:4px}.zoom-text{font-size:14px;font-weight:500;min-width:60px;padding:8px;text-align:center}.button-primary{background-color:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s}.button-primary:hover{background-color:#1565c0}.button-secondary{background-color:transparent;border:1px solid #1976d2;border-radius:4px;color:#1976d2;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s}.button-secondary:hover{background-color:rgba(25,118,210,.08)}.card{background-color:#fff;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.1);padding:24px}.grid{grid-gap:24px;display:grid;gap:24px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}@media (max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}}
/*# sourceMappingURL=main.4ce2e4ce.css.map*/